The concept of randomness is tricky. It’s entirely possible that true randomness doesn’t even exist, which is the principle behind the philosophy of Determination. That idea is based on conventional physics, in which every outcome is the result of preceding physical actions. For example, a proper die roll seems random because it’s impossible to predict the result. But, in reality, if you could perfectly simulate the physical conditions of the roll you could predict the outcome — meaning it’s not really random at all. Mathematical engineer Henk Mulder wanted to explore those ideas, and built this 4-bit random number generator to do so.
Instead of rolling dice, Mulder wanted to create a hardware random number generator. It is generally considered to be impossible to generate a random number purely by digital means. A purely digital circuit can’t generate a random number, because the “seed” of any random number generation algorithm would be a known entity. The output number would always be the same for a given seed — or would at least cycle through output numbers predictably. To overcome that, we use an analog input for the seed. That can come from everything from a noisy RF input to more exotic means like measuring radioactive decays.
This 4-bit random number generator works in hardware with the noise from transistors as they sit at the edge of switching. A small circuit board was designed for those transistors (along with a handful of resistors and a capacitor). Those circuit boards were fabricated by JLCPCB. Each circuit board generates a single random bit, so four of the boards can be put together to generate a random four bit number. A 3D-printed enclosure holds the four boards together. An external microcontroller is needed to actually check those circuits and gather the random bits, and Mulder used a Teensy 3.5 board to do that.
This is where Mulder was able to actually analyze the randomness of those numbers and explore the concept. They note that only about 100,000 samples per second can be produced, which is far slower than what can be achieved with a modern computer. The real question, however, is if the generated numbers are actually random. The answer, as Mulder gives it, is that this produces numbers that are truly unpredictable. But, just as with a roll of the dice, “unpredictable” doesn’t necessarily mean “random.”