Randomness and Pseudo-randomness

Many experiments in computer science are “Monte Carlo” experiments, where the results are based on a large number of random choices.  For example, one might simulate a large number of coin tosses by choosing random numbers in the range 0 to 1, and taking a heads to be any number < 0.5 and tails to be any number >= 0.5

These experiments are normally done using “pseudo-random” techniques, where random numbers are generated by a mathematical technique which simulates randomness, but the numbers are not truly random.

True sources of randomness are available, either from hardware devices or from curated sites like https://www.random.org .  But these approaches suffer from a problem of reproducibility (in the case of hardware devices) and large file sizes (using data from random.org).

This project is to investigate how to reduce these problems in a flexible way to allow experimenters to choose easily between different methods, and assess how important the difference between true- and pseudo-randomness is.