code: public double nextDouble(double bound) {
          if (!(bound > 0.0))
              throw new IllegalArgumentException(BAD_BOUND);
          double result = (mix64(nextSeed()) >>> 11) * DOUBLE_UNIT * bound;
          return (result < bound) ? result : // correct for rounding
              Double.longBitsToDouble(Double.doubleToLongBits(bound) - 1);
      }
docs: Returns a pseudorandom {@code double} value between 0.0
  (inclusive) and the specified bound (exclusive).
  
  @param bound the upper bound (exclusive).  Must be positive.
  @return a pseudorandom {@code double} value between zero
  (inclusive) and the bound (exclusive)
  @throws IllegalArgumentException if {@code bound} is not positive