public static double nextDouble(final double startInclusive, final double endExclusive) {
        Validate.isTrue(endExclusive >= startInclusive,
                "Start value must be smaller or equal to end value.");
        Validate.isTrue(startInclusive >= 0, "Both range values must be non-negative.");

        if (startInclusive == endExclusive) {
            return startInclusive;
        }

        return startInclusive + ((endExclusive - startInclusive) * RANDOM.nextDouble());
    }
<p>
Returns a random double within the specified range.
</p>

@param startInclusive the smallest value that can be returned, must be non-negative
@param endExclusive   the upper bound (not included)
@return the random double
@throws IllegalArgumentException if {@code startInclusive > endExclusive} or if
                                 {@code startInclusive} is negative
android/android_framework/base/src/main/java/lang3/RandomUtils.java