Pseudorandomness and Random Number Generation