How Poker Site Shuffles are Different than Planet Poker ‘99

My last article reviewed the circumstances behind the cracking of Planet Poker’s shuffling algorithm in 1999. I now will explain how modern, reputable poker sites have algorithms and RNG’s that far surpass the quality of the flawed code.

This is part of my series about how Poker sites shuffle the card decks. If this is the first of these you’ve seen, you may want to start with my earlier postings. See the bottom of this post for a list.

Problem: Planet Poker’s flawed shuffle had an algorithm and rng which structurally could not allow for any of the 52! (52-factorial) deck orderings because each produced numbers below 52!

Solution: Major poker sites have expanded the number support in their algorithm to support any possible deck ordering. For example, Paradise Poker uses a 2016 bit seed.

Problem: Planet Poker’s flawed RNG was based on the system clock, which was predictable.

Solution: RNG generation is now typically based on sets of hardware input. Some sites factor or combine the data with a wide variety of data sources.

Here is how Paradise Poker’s RNG seed entropy is gathered:
We have two main sources of these random bits. First, the rng on the server samples the low order bits of the CPU's time stamp counter (667MHz) at irregular parts of the program and when data is received from client connections, and uses it to add to the entropy in our large seed.

Secondly (and mainly) the client programs send their own 32-bits of entropy with every action they make and with several of the other packets they send to the server. The client's entropy is gathered from both mouse and keyboard movements, as well as the lower 32-bits of their CPU time stamp counters.

Here is how Party Poker’s RNG seed entropy is gathered:
PartyPoker.com uses a secure RNG (SHA-1 cryptographic hash algorithm) implemented by SUN which is cryptographically certified. SUN's SeedGenerator class generates the initial seed. The seed is produced by counting the number of times the VM manages to loop in a given period.The samples are translated using a permutation (s-box) and then XORed together. This process is non linear and prevents the samples from "averaging out".

The s-box is designed to have even statistical distribution. A number of sleeper threads are also created which add entropy to the system by keeping the scheduler busy.These are gathered in the background by a daemon thread thus allowing the system to continue performing it's different activities, which in turn add entropy to the random seed.The class also gathers miscellaneous system information, some machine dependent, some not.
The bottom line is that the flawed shuffling method used by Planet Poker was the result of an algorithm and RNG which were not robust enough to handle the challenge.Shuffling algorithms are not particularly complex, and they don’t need to be. What is vital, however, is that they are able to support the large numbers required in the process.

In summary, mainstream poker sites have far surpassed the limitations exposed in 1999 by the team from Reliable Software Technologies.

In their article wherein they described their cracking method, they made this recommendation:
In concert, a good shuffling algorithm and a 64-bit pseudo-random number generator seeded with a proven hardware device should produce shuffles that are both fair and secure. Implementing a fair system is not overly difficult. Online poker players should demand it.
Since that time, their suggestions have been implemented and surpassed by further steps such as shuffling between dealing rounds and exceeding 64-bits.

If you have read through this entire series on Online Poker shuffling, you should have a great deal of confidence in the randomness of the card ordering at mainstream poker sites.

In the interest of completeness, I will continue to cover this topic. Coming soon will be an article on site shuffle certifications, and a review of Hold ‘Em outcomes to see if the results are within appropriate statistical bounds.

You can find prior entries on this topic here:

Online Poker Room Cracked (not a hoax)

Basics of Online Shuffling

Live Cardroom Deck Shuffles

Online Shuffling - Setting Expectations