code: public static long random(final long randomStart)
      {
          long randomValue = randomStart;
          randomValue ^= (randomValue << 21);
          randomValue ^= (randomValue >>> 35);
          randomValue ^= (randomValue << 4);
  
          return randomValue;
      }
docs: Calculate a random value based on the given start Value.
  @param randomStart the start value. Usually the result of the previous invocation
  @return the new random value.