# Random Number Generation: From Pseudorandom to True Random

Generating random numbers without following a pattern, and thus making them predictable, and ensuring they have a corresponding distribution (i.e., so that some numbers do not occur more frequently than others in a long sequence) is a more complex task than it might initially seem. What is a random number generator, and what methods are used?

## Random and Pseudorandom Numbers

**Random number generation (RNG)** is a process that creates an absolutely random sequence of numbers, i.e., one that does not follow any predictable pattern.

### Pseudorandom Number Generator (Software-based)

Most of us encounter a **pseudorandom number generator (P****RNG)**, which generates numbers on a computer using some **algorithm** that produces a seemingly random sequence of numbers. It can also refer to various common functions in programming languages for random numbers, or even in Microsoft Excel – for example, using the function `=RANDBETWEEN(0;36)`

allows you to generate a random number in the range of 0 to 36 for a roulette.

**Pseudorandom generators** are algorithms that produce numbers that, due to their algorithmic nature, are, in fact, deterministic, even though they appear random. This means that if you start with a certain initial state (seed), the generator will always generate the same sequence of numbers.

I tried this in my childhood on a Didaktik computer (similar to ZX Spectrum), where I created a random number simulator in the then Basic programming language. Interestingly, if I turned off and on the computer, it generated the same sequence of numbers. Nowadays, however, pseudorandom number generators are much more sophisticated.

### True Random Number Generator (Hardware-based)

To make numbers truly random, so-called **true random number generators (TRNG)** are used. These are **hardware-based random number generators** that obtain randomness from **physical phenomena**, such as thermal noise, signal, photoelectric phenomena, or other quantum phenomena that are inherently unpredictable.

As a result, they provide a higher level of randomness than pseudorandom algorithms. Their use is common in cryptography and other security applications where randomness is crucial.

## Uniform Distribution

Generating random numbers not only means achieving a random result but also ensuring **uniform distribution** (representation of individual numbers). An ideal generator should have each possible value with similar probability, which is not always easy to achieve in practice.

For example, in dice or roulette, each number should, with a very large number of attempts, come out roughly the same number of times, i.e., with the same probability. Some pseudorandom generators may exhibit inaccuracies or repeating patterns, which is undesirable.

## Random Numbers in the Gaming Industry

When using random numbers in the gaming industry, such as in online roulette, emphasis is placed on eliminating predictability. **Advanced algorithms** are designed to avoid patterns and ensure that each outcome is as independent as possible of the previous one.

### Elimination of Predictability

Predictability of outcomes could lead to system abuse and a reduction in the credibility of online casinos. For this reason, algorithms used for generating random numbers in online games are designed to **eliminate any patterns or predictions of outcomes.** Advanced algorithms take into account multiple factors and ensure that roulette outcomes are as unpredictable as possible.

### Independence of Outcomes

Another key element is to ensure that each outcome is as **independent** as possible of the previous one. This means that the previous spin of the roulette wheel should not influence the outcome of the next spin. This independence of outcomes is a crucial factor in maintaining the fairness of the game and prevents the creation of patterns that players could use to optimize their bets.

### Cryptography and Security

In online casinos where money is at stake, it is important not only to ensure the randomness of game outcomes but also to guarantee the security of the random number generation process itself. Techniques from the field of cryptography are often used for this purpose, protecting algorithms generating random numbers from manipulation and ensuring their resilience against attempts at fraud.

## Randomness Control

**Control of the randomness of generated numbers** should be carried out generally, not only in online betting. Control is done by statistical methods that show whether the generated sequence of random numbers deviates from what corresponds to its probability distribution.

Online casinos are often required to undergo independent audits and certifications that confirm the correctness and fairness of the random number generators used. Such certifications are crucial for building trust between players and the casino. International organizations and regulatory agencies, such as eCOGRA, are responsible for assessing and certifying online gaming platforms, including checks on random number generators.

## Conclusion

Generating random numbers is a fascinating aspect of computer science and mathematics. From simple pseudorandom algorithms to complex hardware generators, there are many approaches to achieving randomness.

It is important to be aware of the limitations of pseudorandom methods and, in cases where true randomness is crucial, consider the use of hardware random number generators.

In a world where digitization penetrates every aspect of our lives, the ability to generate random numbers with credibility and security is becoming increasingly important, whether in the field of online gaming, cryptography, or scientific research.

## You Might Be Also Interested

- Chance: Exploring the Mysteries of Randomness and Probability;
- Probability, Odds and Luck;
- Expected Value Concept in Gambling Explained;
- Chevalier de Mere's Probability Puzzle of the 17th Century;
- Monty Hall Problem aka Three Door Puzzle;
- Two Beagles Probability Puzzle;
- All Articles on Probability.

Based on the original Czech article: Generování náhodných čísel.