Random numbers form the basis of most security systems. Yet the methods for generating random numbers vary widely in practice as well as efficacy. Over time, many popular randomization algorithms and circuit implementations have been shown to be provably flawed. The paper will examine current methods for generating random numbers based on various sources of entropy as well as their associated attack techniques, including physical, statistical, and electronic methods.