Randomness has many applications in computing ranging from cryptography and statistics to generative art and simulation, but where does randomness come from? When you ask for a random number from your system, how truly random is it?
This talk will explore randomness in software practice in a variety of contexts. Touching on sources of entropy, pseudo-random number generation, and what it means to be cryptographically secure, this talk will explore both the algorithms and the APIs that supply us with random numbers. This talk will also cover the mechanisms for testing and verifying statistical randomness. Interspersed seemingly randomly throughout will be some great examples of bots, games, and generative art that use randomness and procedural generation in creative and unusual ways. You will come away from this high-level overview with a newfound sense of respect and awe for the humble Math.random().