code: @Override
  	public int next(int bits) {
  		long nextSeed = seed ^ (seed << 21);
  		nextSeed ^= (nextSeed >>> 35);
  		nextSeed ^= (nextSeed << 4);
  		seed = nextSeed;
  		return (int) (nextSeed & ((1L << bits) - 1));
  	}
docs: All other methods like nextInt()/nextDouble()... depends on this, so we just need to overwrite
  this.
  
  @param bits Random bits
  @return The next pseudorandom value from this random number
  generator's sequence