Java 8 added a random number generator called SplittableRandom which seems to be meant for use with streams. However, it isn't clear how it is better than or more useful than ThreadLocalRandom. From reading documentation, it seems the algorithm was changed to have better statistical properties. That said, why not call it BetterThreadLocalRandom and drop the split method? Why would anyone ever call split()?