Package org.apache.commons.lang3

## Class RandomUtils

- java.lang.Object
- - org.apache.commons.lang3.RandomUtils

    public class RandomUtils
    extends java.lang.Object

Utility library that supplements the standard `Random` class.

Caveat: Instances of `Random` are not cryptographically secure.

Please note that the Apache Commons project provides a component dedicated to pseudo-random number generation, namely Commons RNG, that may be a better choice for applications with more stringent requirements (performance and/or correctness).

Since:
  3.3

### Constructor Summary

Constructors
`RandomUtils()` `RandomUtils` instances should NOT be constructed in standard programming.

### Method Summary

All Methods Static Methods Concrete Methods
`static boolean` `nextBoolean()` Returns a random boolean value
`static byte[]` `nextBytes​(int count)` Creates an array of random bytes.
`static double` `nextDouble()` Returns a random double within 0 - Double.MAX_VALUE
`static double` `nextDouble​(double startInclusive, double endExclusive)` Returns a random double within the specified range.
`static float` `nextFloat()` Returns a random float within 0 - Float.MAX_VALUE
`static float` `nextFloat​(float startInclusive, float endExclusive)` Returns a random float within the specified range.
`static int` `nextInt()` Returns a random int within 0 - Integer.MAX_VALUE
`static int` `nextInt​(int startInclusive, int endExclusive)` Returns a random integer within the specified range.
`static long` `nextLong()` Returns a random long within 0 - Long.MAX_VALUE
`static long` `nextLong​(long startInclusive, long endExclusive)` Returns a random long within the specified range.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### RandomUtils

    public RandomUtils()

`RandomUtils` instances should NOT be constructed in standard programming. Instead, the class should be used as `RandomUtils.nextBytes(5);`.

This constructor is public to permit tools that require a JavaBean instance to operate.

### Method Detail

#### nextBoolean

    public static boolean nextBoolean()

Returns a random boolean value

Returns:
  the random boolean
Since:
  3.5

#### nextBytes

    public static byte[] nextBytes​(int count)

Creates an array of random bytes.

Parameters:
  `count` - the size of the returned array
Returns:
  the random byte array
Throws:
  `java.lang.IllegalArgumentException` - if `count` is negative

#### nextInt

    public static int nextInt​(int startInclusive,
                              int endExclusive)

Returns a random integer within the specified range.

Parameters:
  `startInclusive` - the smallest value that can be returned, must be non-negative
  `endExclusive` - the upper bound (not included)
Returns:
  the random integer
Throws:
  `java.lang.IllegalArgumentException` - if `startInclusive > endExclusive` or if `startInclusive` is negative

#### nextInt

    public static int nextInt()

Returns a random int within 0 - Integer.MAX_VALUE

Returns:
  the random integer
Since:
  3.5
See Also:
  `nextInt(int, int)`

#### nextLong

    public static long nextLong​(long startInclusive,
                                long endExclusive)

Returns a random long within the specified range.

Parameters:
  `startInclusive` - the smallest value that can be returned, must be non-negative
  `endExclusive` - the upper bound (not included)
Returns:
  the random long
Throws:
  `java.lang.IllegalArgumentException` - if `startInclusive > endExclusive` or if `startInclusive` is negative

#### nextLong

    public static long nextLong()

Returns a random long within 0 - Long.MAX_VALUE

Returns:
  the random long
Since:
  3.5
See Also:
  `nextLong(long, long)`

#### nextDouble

    public static double nextDouble​(double startInclusive,
                                    double endExclusive)

Returns a random double within the specified range.

Parameters:
  `startInclusive` - the smallest value that can be returned, must be non-negative
  `endExclusive` - the upper bound (not included)
Returns:
  the random double
Throws:
  `java.lang.IllegalArgumentException` - if `startInclusive > endExclusive` or if `startInclusive` is negative

#### nextDouble

    public static double nextDouble()

Returns a random double within 0 - Double.MAX_VALUE

Returns:
  the random double
Since:
  3.5
See Also:
  `nextDouble(double, double)`

#### nextFloat

    public static float nextFloat​(float startInclusive,
                                  float endExclusive)

Returns a random float within the specified range.

Parameters:
  `startInclusive` - the smallest value that can be returned, must be non-negative
  `endExclusive` - the upper bound (not included)
Returns:
  the random float
Throws:
  `java.lang.IllegalArgumentException` - if `startInclusive > endExclusive` or if `startInclusive` is negative

#### nextFloat

    public static float nextFloat()

Returns a random float within 0 - Float.MAX_VALUE

Returns:
  the random float
Since:
  3.5
See Also:
  `nextFloat(float, float)`