code: private long nextRandomLong(long a, long b) {
      return a + (rng.nextLong() & Long.MAX_VALUE) % (b - a + 1);
    }
docs: Auxiliary method that generates a pseudo-random long
  within a given internal
  @param a Lower bound
  @param b Upper bound
  @return A long value in the interval <code>[a, b]</code>