Techniques for Generating Random Integers