As we learned in Random Stupidity, developers don't really trust rand(), random(), Random.GetNext(), etc. Nor should they. The documentation, after all, clearly states that the function "generates a pseudo-random number." That's right, *pseudo*. Who wants *pseudo*?

The neat thing about *pseudo*-randomness is that, if you think about it -- and you don't think *too* much about it -- you can actually generate a *real* random number by pseudo-randomizing a pseudo-randomizer a pseudo-random number of times. It's kind like how two wrongs (either wrongly done for the right reason or rightly done for the wrong reason) make a right. Really, it's simple math.

**Jacob's** predecessor was well aware of this fact, and devised a very clever way to generate *extremely* random numbers: by increasing the entropy.

void GenerateRandom(unsigned char Val[16], unsigned long seed) { int i; // Initialize randomizer srand(seed); // This really doesn't have enough entropy.... for(i=0;i<(rand() & 16);i++) srand(rand()); // Get the val for(i=0;i<16;i++) Val[i]=(char)(( rand() >> 7) & 0x00FF); }