Brent, Richard P2003-07-102004-05-192011-01-052004-05-192011-01-051994http://hdl.handle.net/1885/40780http://digitalcollections.anu.edu.au/handle/1885/40780Random number generators are widely used in practical algorithms. Examples include simulation, number theory (primality testing and integer factorization), fault tolerance, routing, cryptography, optimization by simulated annealing, and perfect hashing. Complexity theory usually considers the worst-case behaviour of deterministic algorithms, but it can also consider average-case behaviour if it is assumed that the input data is drawn randomly from a given distribution. Rabin popularised the idea of “probabilistic" algorithms, where randomness is incorporated into the algorithm instead of being assumed in the input data. Yao showed that there is a close connection between the complexity of probabilistic algorithms and the average-case complexity of deterministic algorithms. We give examples of the uses of randomness in computation, discuss the contributions of Rabin, Yao and others, and mention some open questions. 1991 Mathematics Subject Classification. Primary 68-01, 68Q25; Secondary 05C80, 11A51, 11K45, 34F05, 65C10, 68P10, 68Q05, 68Q10, 68Q15226785 bytes356 bytesapplication/pdfapplication/octet-streamen-AUGalileointeger factorisationLas Vegas algorithmLibrary of Congress on Marsminimal perfect hashingMonte Carlo algorithmperfect hashingperfect party problempermutation routingprimality testingprobabilistic algorithmRamsey numberrandom algorithmrandomisationrandomnessRPUses of randomness in computation1994