Another notice about shuffling collection with random order - http://www.codinghorror.com/blog/archives/001008.html with detailed analysis- http://www.codinghorror.com/blog/archives/001015.html C simple implementation of random - http://groups.google.com/group/comp.lang.c.moderated/browse_thread/thread/407497c8cae78303?hl=en Pushing the Limits in Java's Random - http://www.artima.com/weblogs/viewpost.jsp?thread=340484 Getting random correctly can be difficult - http://nurkiewicz.blogspot.com.au/2013/01/probability-distribution-for-programmers.html Introduction to security random - http://www.java-tv.com/2013/01/21/java-secure-random-number-generation/ How Java implement math.random - http://www.reddit.com/r/java/comments/1qgnqu/how_does_mathrandom_work/ Few performance tip of random ( or UUID ) for Java and Linux - https://blog.fastthread.io/2022/03/09/java-uuid-generation-performance-impact/