Choose Your Own Pyventure/Random and PRNGs

How can a computer make a random number? There are sources of (probably) true randomness in the world of natural phenomena, such as radioactive decay, but most computers don't use them. Instead computers rely on mathematical functions that produce pseudorandom numbers, called Pseudorandom Number Generators (PRNGs).

Given the last generated number, and some configuration parameters (collectively, the state), they deterministically generate another number. In a good PRNG, these numbers will appear unpredictable, unless you know the 'secret sauce' (the state of the generator). For most purposes, pseudorandom is good enough.

As it turns out, the Python  module, uses a good PRNG called the Mersenne Twister. When you ask for a random number, the Twister generates the next in its series. If you asked for enough numbers, they would repeat.

Astute readers might see a flaw in this plan. How does it figure out the first number to start generating from? As it turns out, Python seeds the generator with some combination of the time, the machine name, yesterday's baseball scores, Hollywood box office receipts, and other unlikely to repeat arcana.

Let's explore the  module a bit. Along the way, we'll learn about,    and the seed.