Hossein Haeri wrote:
Peter (Dimov),
It depends on your platform. /dev/urandom on Linux and possibly other Unixes, encapsulated by boost::random_device; CryptGenRandom on Windows.
Pardon?
Your question was "how do I obtain a good random seed". If you need high quality randomness that is hard to predict, you need a source of entropy, that is, a "real" random number generator. On Linux such an entropy source is available as the /dev/urandom device, which you can read as an ordinary file. You can pass a boost::random_device to the constructor of your engine so it can seed itself from /dev/urandom. On Windows there is no /dev/urandom, but you can generate a high-quality random seed with CryptGenRandom. This function uses a number of essentially random values in the Windows kernel as an entropy source. Of course if time(0) meets your needs, go for it. :-)