Random Number Generators (aka RNGs) often come up when we online gaming
people start musing over the nature of our universe. For the most part
the questions boil down to this: What are they? How do they work? How
are they used in casino software? Are they reliable? Are they honest?
I wrote my first RNG early in my university days. I'd found a text with
the basic RNG algorithms so it wasn't hard. As I recall it took me about
two hours to write and debug the program. I was pretty pleased until I
decided to test the randomness of my creation. That took about a week and
in the end I learned that my RNG was basically useless. It took me two
years to learn and understand why.
RNGs basically come in three flavors. The first and simplest produce
quasi-random results. This is what I'd written and in my case that
meant that the results of the RNG were reasonably well distributed but
were not sufficiently independent. In other words patterns would emerge
that prohibit this type of RNGs practical use.
At the other end of the spectrum are the ideal, or truly random RNGs.
Unfortunately these are equally unrealistic in everyday use because truly
random results are only found in naturally occuring phenomenon such as the
radioactive decay of isotopes or particle detection in solar radiation
detectors. These events can be recorded and used to drive software based
RNGs but this is typically too cumbersome for practical applications.
And so, as ever in the software world, we are left with a compromise. By
far the most popular and widespread RNGs are called pseudo-random in
that for all practical purposes they appear to produce results that are
both statistically independent and uniformly distributed. In other
words as far as normal statistical analysis is concered they are good
enough for practical use.
There is a forth solution to the RNG problem and that is a random number
producing piece of hardware such as the RNG microchips Intel is including
in their new security enhanced computer systems. However, since such
chips are typically just a silicon-encoded version of a computer program,
there is insufficient evidence to recommend this solution over the far
cheaper software-based RNGs.
Whatever flavor of RNG is employed, actually using it in a software
program -- such as your casino software download -- is straightforward. The
software simply asks the RNG for a new result within a specified range and
the RNG module coughs up a number. If we're talking dice the number would
be between 1 and 6. If it was Blackjack it would be between 1 and 52
where each possibility represented a given card in the standard deck.
In the end the reliability of a given system's RNG depends on (a) the
tests to which that RNG has been subjected to determine it's statistically
random performance, and (b) the software's use of the RNG's results. In
the first case we're talking about some kind of (hopefully routine) audit.
In the second case it's simply a matter of trust.
Just in case we've missed the forest for the trees let me be perfectly
clear: finding and using a reliable RNG is one of the least complicated
tasks involved in offering honest gaming system. Excellent RNGs aren't
literally a-dime-a-dozen but they're pretty close to it. But even the
best RNGs can only produce raw numbers that the gaming software must then
take and translate into the dice face, or card, or roulette number, or
whatever the game at hand may be. The question of your faith that the
casino is using the RNG fairly and properly is quite beyond the scope of
this article or any similar discussion of RNG-based systems.