We all have an intuitive notion of randomness. Most people think they can produce a string of random numbers on demand. However, humans are notoriosly bad at generating numbers at random (however, see here for an exception). If you ask people to choose a random string of numbers, most will avoid repeating a number twice or thrice in a row. But doing so introduces subtle patterns and makes the sequence less than truly random (by radom here I mean that the numbers should be chosen with uniform probability, and indpendently). If the shuffle function on your iPod resulted in a truly random sequence of songs, you would likely get more repeats than you expect – randomly generated events tend to clump.
Randomness is a fundamental aspect of many processes in nature. For instance, evolution is driven by random mutations. These mutations result in diversity, and occasionally produce a mutant that is better adapted to the environment than its predecessors. Therefore, randomness is why we are here.
Many scientists study such random processes experimentally, and develop theoretical models to describe them. Such models are used to decide which drugs are beneficial and safe. However, these theoretical models can be complex, and we frequently need computers to fully understand them. And therein lies a big problem: like humans, computers are not great at generating random numbers. Indeed, computers are designed to provide a precise answer to mathematical questions. Variabilty or randomness in their output is a sign of bad design.
So can a machine designed to provide repeatable output generate random numbers? Yes! Some processes follow precise mathematical rules and result in outputs that look random. Think of the number pi. Its digits are well defined. You can use a computer to generate as many digits of pi as you please. The beginning of the sequence will be familiar (3.14159). However, if you grab a string of digits from an arbitrary location, they will look random (here are a few digits starting from the tenth place after the decimal point 5897932384).
Random number generators based on these principles are good enough for most applications. But it is important to remember that the resulting sequences are not truly random. Scientists have therefore looked at other ways generating random numbers.
The coolest method I know creates random numbers out of nothing. According to quantum mechanics vacuum is not truly empty, but is filled with subatomic particles that pop in and out existence. And this spontaneous creation and anahilation is truly random. Scientists in Australia were able to harness these fluctuations to produce billions of truly random numbers per second. It is amazing to think that perhaps the best way to create randomness is out of nothingness.