code: public static int nextInt(final IntRange range, final Random random) {
  		return range.size() == 1
  			? range.getMin()
  			: nextInt(range.getMin(), range.getMax(), random);
  	}
docs: Returns a pseudo-random, uniformly distributed int value between origin
  (included) and bound (excluded).
  
  @param range the allowed integer range
  @param random the random engine to use for calculating the random
  int value
  @return a random integer greater than or equal to {@code min} and
  less than or equal to {@code max}
  @throws IllegalArgumentException if {@code range.getMin() >= range.getMax()}