The importance of Random Numbers – The RNG

It’s been a while since our last blog posting.  We’ve been busy at work creating our latest slot game “Jokers Crown Video Slot Machine” for iPhone/iPad, Kindle Fire, Nook, and Android devices.

Random Number Streams for Casino Games:

In casino games, the random number generator or (RNG) for short is the basis for all casino game payouts. An ideal RNG would not repeat a particular number sequence for a long time. All RNG’s are computer algorithms that are really “pseudo random” in nature. Everything in a computer is deterministic. It is predictable.

A valid (although not legal for gaming) random number generator can simply be a long list of numbers stored in an list. If the length of numbers were sufficiently large and the pattern of numbers didn’t repeat, and all numbers were covered you could use this to sort cards for a card game or set reel stop positions on a slot machine. When you needed a new result (card or reel stop) you would grab the next number in the list. One important thing to note is that if you start at the same position in the list each time, you will get the same result. Also, if you reached the end of the list and started again from the beginning, you’d get the same reel stops (wins) or card hands. If we used this method and you were clever (had seen all the results that were played before wrapping around) you could figure out what the next win (or loss) would be given the current reel stops or cards dealt.

In RNG terminology, the index into the random number sequence is called the “seed”. Again if you start from the same seed you will get the same set of random numbers.

What is used in gaming is a very long sequence (before repeating) random number stream based on shifting bits and performing a binary mathematical operation called an “exclusive or” on or between multiple cpu registers. The long length is desirable for awarding large payout progressives awards. If the sequence was too small it’s possible the progressive would be impossible to hit as the set of stops required to hit the progressive would not exist in the stream at all. RNG’s are analyzed using simulation to make sure the odds are what they claim they are and that it is both fair to the customer and the casino.

There are events in life that are seemingly random (meeting people, car accidents, etc). Philosophers debate about the concept of “free will” or if everything is based on“fate”. The cpu on a computer is fully understandable and non-random. The fundamental core of any cpu is the transistor which is a simple electrical gate. Each state is represented as a voltage (0v and 5v). 0 volts represents false (or zero) and 5 volts represents true (or 1).  This simple gate and related digital logic, low level programming languages, then higher level programming languages, internet, and now the blur of the go anywhere computer and cloud give the illusion of free will on the computer.

When you walk up to a slot or video poker machine at a casino, you have no way of knowing where it is in the stream of numbers. Also, since the stream is so large, a large payout doesn’t necessarily imply that another high pay couldn’t happen soon after.  If you could peer into the stream and look at it from afar and looked at it from left to right, you could paint areas where the stream is hot and areas in the stream that are cold.  The “hot” or “coldness” would be different for each slot game as the specific reel stops that map to wins are different on each slot game.  In the end, this is where the Luck exists and is one of the key components in the fun a player experiences.

There are a lot of technical details that I left out of this article which deal with the finer details of randomness tests, number distribution, etc. If you are interested in more details, feel free to post a question to this blog or send us an email at We’ll post a follow up article soon on the relationship between RNG, slot machine paytables, volatility and fun.


Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>