I just found this post, I would like to clarify some things.
I guess that the PRNG used in this site is good or, at least, good enough for playing risk. However, I would like to point out that Vexer’s simulation doesn’t prove that the generator is random at all. For example, lets take a coin flipper simulator that, after 100.000 flips gives a sequence like:
head, tail, head, tail, head, tail,….or
head, head, head … tail, tail, tail (50% heads and 50% tails)
or
head, head, tail, tail, head, head, tail, tail, head, head…In any of these cases, you will obtain 50% heads and 50% tails, but the sequence will be far from random.
In order to prove that a sequence has good random properties, more complex tests must be made. For example, some tests available are the
Diehard and the
NIST tests. Unfortunately, these tests are designed to test binary sequences. If your PRNG is generating random integers (from 1 to 6), the testing can be more complex.
I have also read some complaints about the dice not being "True Random". The only difference between a TRNG and a PRNG is that the TRNG obtains the numbers from a physical (unpredictable) source while the PRNG obtains the numbers using a deterministic algorithm.
A TRNG doesn't necessarily have to be better than a PRNG. In fact, I believe that is usually the opposite. Quite often, TRNGs have bad satistical properties.
Edit: I just saw that your algorithm uses the Mersenne Twister which passes the Diehard randomness tests, so the PRNG used is actually quite good.
I just found this post, I would like to clarify some things.
I guess that the PRNG used in this site is good or, at least, good enough for playing risk. However, I would like to point out that Vexer’s simulation doesn’t prove that the generator is random at all. For example, lets take a coin flipper simulator that, after 100.000 flips gives a sequence like:
[b]head, tail, head, tail, head, tail,….[/b]
or
[b]head, head, head … tail, tail, tail [/b](50% heads and 50% tails)
or
[b]head, head, tail, tail, head, head, tail, tail, head, head…[/b]
In any of these cases, you will obtain 50% heads and 50% tails, but the sequence will be far from random.
In order to prove that a sequence has good random properties, more complex tests must be made. For example, some tests available are the [url=http://www.csis.hku.hk/cisc/download/index2.htm]Diehard[/url] and the [url=http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html]NIST[/url] tests. Unfortunately, these tests are designed to test binary sequences. If your PRNG is generating random integers (from 1 to 6), the testing can be more complex.
I have also read some complaints about the dice not being "True Random". The only difference between a TRNG and a PRNG is that the TRNG obtains the numbers from a physical (unpredictable) source while the PRNG obtains the numbers using a deterministic algorithm.[b] A TRNG doesn't necessarily have to be better than a PRNG[/b]. In fact, I believe that is usually the opposite. Quite often, TRNGs have bad satistical properties.
Edit: I just saw that your algorithm uses the Mersenne Twister which passes the Diehard randomness tests, so the PRNG used is actually quite good.