Here’s a quote from a reddit discussion:
… for poker [a cryptographically secure RNG] is completely unnecessary. If you have an appropriate unpredictable seed, and you are throwing away a lot of the randomness, MT is perfectly safe.
I’d normally write this off as ignorance, but this goes on:
I've actually implemented a real-money poker backend, and the company even had it certified
And since nobody lies on the internet, this makes me wonder. Said person expands on this in another part of the discussion:
[To prevent predictability] you would not use 624 consecutive values produced from [the MT generator]. If you want a real-money app. certified, one of the criteria is to throw away a large and unpredictable amount of the output of the PRNG.
You also don't know the specifics of how the PRNG was used to produce a shuffle. So, you have no way to map the cards you see on the table to a sequence from the PRNG.
You also don't know when the PRNG is reseeded.
One last thing. You need to store (219937 − 1) * 4 bytes of data for lookup, in order to find the pattern you need to predict.
Except for the last paragraph, these arguments sounds suspiciously like security by obscurity. The last paragraph sounds less so, but somebody else in the discussion has claimed that the statement is untrue, and you don’t need such a big lookup table.
Just to clarify, I’m aware that MT19937 isn’t cryptographically secure (and so is the person I’m quoting). However, my assumption so far was that gambling (and poker) would require a cryptographically secure random source – and not just a secure seed – (a) to be tamper proof, and (b) for certification. Is this wrong?
(219937 ** 4) - 1
would make more sense given the context. (Of course, if he actually did mean 879,744, that right there tells you all you need to know about whether someone is lying on the Internet. . .)(52!)/((52-(5 +2*#players))!5!(2*#players))
possible scenarios in texas hold'em (select 1 group of 5 and #players groups of 2)