Multiple threads in the same Fenix machine would unnecessarily contend on the synchronized blocks that ensure thread-safety in the java.util.Random class. This solution spends some marginal additional memory to use one Random instance per thread but avoids any synchronization.