This is going to sound like a smartass answer, but real random numbers are really random, psudo random numbers are random-ish. Most "random" number generators are actually periodic, even if they have large periods. I could be wrong, but having to specify a seed is a clue it's psudo random. Seeding a "random" number generator is a way to increase it's randomness somewhat. With the good old C rand function, try seeding it with 10 (using srand) and write it out to a file. Run it as many times as you want, and you'll end up with the SAME file. Some modern computers have real entropy sources built in, and for those that don't, it's possible to collect entropy from various places (you'll have to do some googling about openbsd since they go nuts with this). You can use an entropy source as a _real_ random number generator, or to seed a psudo random number generator to make it a little less periodic. If you want to be lazy there used to be a series of books called numerical recipies in %w{c pascal youre-favorite-language}. One thing they showed was a good random number generator, and apparently they went into some depth on the subject. Places where random vs psudo random are important: If you are running models that use random numbers (a friend of mine was going really neurotic once trying to make sure his supernovas modeller was really really random) Cryptography umm... uhh... yea I can't think of more right now.