Ever played a board game such as monopoly? The pacing of the game is centred around the dice, a hardware random number generator.  Based on how you release the dice, and non-deterministic1 environmental factors, the dice produces a random number – how far you can travel on the board! Imagine for a moment, if the dice wasn’t random; wouldn’t all players be able to play and monopolise properties at will?

1A deterministic system is a system where no random factor determines the output of the system.

Similarly, much of the things we communicate and interact with today – image files, videos and computer programs continuously transmit and generate information. This information is often represented as smaller binary numbers, which are then converted into 1s and 0s. Hence, when the sequence of 1 and 0s (which carry information) can no longer be simplified, we say that this string of information is random. This is known as the entropy of a system, and gave rise to one of the most fundamental theories in Physics — Information Theory.

How do we generate random numbers?

We can generate random numbers through both physical and computational methods

Physical methods such as measuring rates of radioactive decay, clock drift, or thermal noises are prone to biases in the design of the setups. This makes them more difficult to maintain, especially miniaturised for use in small portable devices.

However, in recent times, some of these limitations have been overcome, and prototypes such as circuits containing transducers to convert physical phenomena such as environmental noise or static noise have been developed for use.

Still, computational methods are designed to overcome the limitations of physical ones, such as being much faster, take up less physical and virtual memory space, to suit the various use cases.

They can be broadly categorised into uniform and non-uniform generators.