For a server-side Java application I want to have a random number generator. I'm using the ISAAC algorithm from Apache Commons Math 3 because it is both cryptographically strong and fast. I have written the following code to initialise the generator:public class ThreadLocalRandomGenerator {    private static ThreadLocal<RandomGenerator> instances = new ThreadLocal<>();    public static RandomGenerator get() {        RandomGenerator generator = instances.get();        // Initialise new generator if needed.        if (generator == null) {            int[] seed = new int[256];            seed[0] = (int) (System.currentTimeMillis() & 0xffffffffL);            seed[1] = System.identityHashCode(new Object());            for (int i=2 ; i<256 ; i++) {                seed[i] = 0;                for (int j=0; j<32; j++) {                    seed[i] |= (int) ((System.nanoTime() & 1L) << j);                }            }            System.out.println(Initialised random seed:  + Arrays.toString(seed));            // Create generator.            generator = new ISAACRandom(seed);            instances.set(generator);            // Warm up.            for (int i=0 ; i<1_000 ; i++) {                generator.nextLong();            }        }        return generator;    }}Basically I'm using a ThreadLocal to keep several generators around for use in threads, and I'm initialising each one using an array of integers generated from the least significant bits of nanoTime(). The reason for using 256 integers is because that's the internal size of the ISAACRandom class.Does this seem sensible?
Random number generator initialisation
java;random