docs: static long nextLong(
  		final Random random,
  		final long min, final long max
  	) {
  		if (min > max) {
  			throw new IllegalArgumentException(format(
  				"min >= max: %d >= %d.", min, max
  			));
  		}
  
  		final long diff = (max - min) + 1;
  		long result = 0;
  
  		if (diff <= 0) {
  			do {
  				result = random.nextLong();
  			} while (result < min || result > max);
  		} else if (diff < Integer.MAX_VALUE) {
  			result = random.nextInt((int)diff) + min;
  		} else {
  			result = nextLong(random, diff) + min;
  		}
  
  		return result;
  	}