http://web.comlab.ox.ac.uk/oucl/work/richard.brent/random.html