class SplittableRandom

Kasper Nielsen kasperni at gmail.com
Fri Jul 19 05:05:47 UTC 2013


Telling people that your random source passes the die-hard test but at the
same time only using the current time as the seed is just pure evil.
Imagine spinning up a couple of thousands images with a JVM on Amazon. You
are going to see collisions among the seed values a lot sooner than you
think. Especially if the granularity of System.nanoTime() is not actual 1
nanosecond. You need to use some kind of random source for the seeding or
at least mix in the process ID/host ID with the current time.
Obviously RDRAND would be a good choice if available. This is a problem
Random and TLR suffers from as well.

Also I'm really worried about the seed value of just 64 bit. That is not a
lot if SR is sold as a quality random number generator. People are going to
experience collisions (albeit rarely) while using it.

- Kasper



More information about the core-libs-dev mailing list