# Does card-counting work in online Blackjack?

I realize that card counting is strongly discouraged.

Are there systems in-place to prevent card-counting in online blackjack?

Online casinos use an 'infinite shoe', which would preclude any card counting, as they effectively draw random cards with a fixed probability. This means it's possible (though very very very unlikely) for all the players at the table to draw the same card (e.g. everyone gets an eight of hearts).

This is done both for ease of the game developer (fixed probabilities are easier to code than simulating multiple decks) and to prevent card counting (which is unenforceable on-line).

So, in short, card-counting is completely ineffective on-line.

• I believe your answer, it seems the most sensible, but do you have any sort of source? – Gregor Thomas Dec 12 '11 at 9:04
• A good source of evidence supporting this claim is the lengths to which people go to reverse engineer the random algorithm used on online sites. Consider this paper: cigital.com/papers/download/developer_gambling.php It's talking about guessing the RNG seed value. While THIS type of cheating is possible, it's not card counting. – Neal Tibrewala Dec 12 '11 at 13:16
• I am a software developer so I can confirm that most if not all forms of online Black Jack will behave in the following way. As there are 52! (80658175170943878571660636856403766975289505440883277824000000000000) ways of shuffling a deck of cards making it nearly impossible to store simulated decks, they will probably have a deck list stored and cards taken at random from that list – WhatsThePoint Jun 20 '17 at 7:51

Any online card game worth its salt is going to shoe in a brand new deck on every deal, every time.

No more card counting!

• You can still count cards (slightly) within one deck. Often programs don't deal "cards" from "decks", they just pick a random card out of an array of possible choices, without eliminating that choice (meaning you could get repeated cards) – Oak Jun 19 '17 at 14:43

It depends completely on what algorithm is used for representing and dealing the cards.

A computer could simulate dozens of decks and could do a full deck shuffle after each hand.

So card counting can work, if the developer hasn't taken measures to counter it.

• I would go a step further - it's much easier to do a complete shuffle as part of 'dealing out' each hand than it is to keep track of the cards remaining in the deck and shuffle only when the deck has been drained far enough. (Contrast this with a live casino where shuffling is a relatively time-consuming process.) Card counting should only work on an online casino if the shuffle/deal engine has been built to specifically allow for it. – Steven Stadnicki Dec 10 '11 at 17:55
• @StevenStadnicki that depends a lot on the language used. In Python, using .shuffle .count .pop and .add methods, and a list variable per player and for the deck, it's trivial effort to program the half-the-deck accounting. <br> if (deck.count() < 27) deck = stockdeck <br> deck.shuffle() – aramis Dec 10 '11 at 18:38

To flesh out my comment into an answer: unless the online casino is specifically taking steps to encourage card counting (which is highly unlikely - there are reasons for physical casinos to do this, but none for virtual casinos; see below), then it's almost certain that they won't be countable. The reason for this is the difference between shuffling online and shuffling off. Offline, a good shuffle is a very time-consuming operation: even with the latest shuffling machines, it either requires 15-30 seconds with the shoe into a mechanical shuffler or the bookkeeping of rotating between several shuffled decks; since Blackjack is such a fast-paced game, this time can really add up. Furthermore, shuffling puts a lot of wear on a deck, and so shuffling more often means that the casino is going through more decks - a relatively modest cost, but definitely a non-zero one.

By contrast, the shuffle operation for a virtual deck of cards is relatively quick (the most expensive operation is getting enough high-quality random numbers for the shuffle), and shuffling the deck each time is much easier to code than tracking dealt hands would be. Here's the comparable rough pseudocode:

do {
shuffle the deck;
deal out a set of hands;
} (forever);

for the 'shuffle each time' method, versus

do {
shuffle the deck;
while ( there are still more than half the cards left in the deck ) do {
deal out a set of hands;
}
} (forever);

to simulate a 'traditional' blackjack dealing scheme. There's not a lot of difference between the two, but the latter definitely has quite a bit more bookkeeping, and there's little upside for the casinos.

Note that it's not necessarily strictly true to say that live casinos actively discourage card-counting. They may start to lean on you if you're too good at it, but for quite a while many of the smaller non-strip casinos were actually encouraging counting just because it was net positive EV for them: they drew more gamblers who thought they could cheat the casino by counting but couldn't actually do it well/correctly, enough to make up for the small handful of gamers who could actually do it well. But this can't apply online, since an online casino can't police against gamers who use external aids (in this case, presumably software) to do accurate counting in the same way that a live casino can, so the percentage of 'skilled' vs. 'bad' counters is much much higher.

• That depends a Lot on how you track cards in the first place, and the programming environment. – aramis Dec 10 '11 at 18:39
• I agree that it's generally not too hard, but the point is that unless you're doing something really strange it's never less coding work to shuffle the deck every time compared to shuffling one time in N (for whatever N may be), and there's no real incentive for doing so. – Steven Stadnicki Dec 10 '11 at 18:55
• in python, it's one extra line. And the incentive is in mirroring the standard play. Which may be a legal requirement in some places. – aramis Dec 10 '11 at 19:02