Many program written today require the ability to generate pseudo-random values. There are many ways of doing this and most languages and platforms choose unfortunate defaults, allowing attackers to predict the output of these RNGs and launch a variety of practical attacks. I discuss how some of these RNGs work and how they can be exploited. I will also release and discuss a tool for performing RNG prediction.