Class RandomUtils
Random
class.
Use secure()
to get the singleton instance based on SecureRandom.getInstanceStrong()
which uses an
algorithms/providers specified in the securerandom.strongAlgorithms
Security
property.
Use insecure()
to get the singleton instance based on ThreadLocalRandom.current()
; which is not
cryptographically secure.
Starting in version 3.15.0, this class uses SecureRandom.getInstanceStrong()
for static methods.
Starting in version 3.16.0, this class uses secure()
for static methods and adds insecure()
.
Before version 3.15.0, this class used ThreadLocalRandom.current()
for static methods, which is 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
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
Generates a random boolean value.static byte[]
nextBytes
(int count) Generates an array of random bytes.static double
Generates a random double between 0 (inclusive) and Double.MAX_VALUE (exclusive).static double
nextDouble
(double startInclusive, double endExclusive) Generates a random double within the specified range.static float
Generates a random float between 0 (inclusive) and Float.MAX_VALUE (exclusive).static float
nextFloat
(float startInclusive, float endExclusive) Generates a random float within the specified range.static int
nextInt()
Generates a random int between 0 (inclusive) and Integer.MAX_VALUE (exclusive).static int
nextInt
(int startInclusive, int endExclusive) Generates a random integer within the specified range.static long
nextLong()
Generates a random long between 0 (inclusive) and Long.MAX_VALUE (exclusive).static long
nextLong
(long startInclusive, long endExclusive) Generates a random long within the specified range.boolean
Generates a random boolean value.byte[]
randomBytes
(int count) Generates an array of random bytes.double
Generates a random double between 0 (inclusive) and Double.MAX_VALUE (exclusive).double
randomDouble
(double startInclusive, double endExclusive) Generates a random double within the specified range.float
Generates a random float between 0 (inclusive) and Float.MAX_VALUE (exclusive).float
randomFloat
(float startInclusive, float endExclusive) Generates a random float within the specified range.int
Generates a random int between 0 (inclusive) and Integer.MAX_VALUE (exclusive).int
randomInt
(int startInclusive, int endExclusive) Generates a random integer within the specified range.long
Generates a random long between 0 (inclusive) and Long.MAX_VALUE (exclusive).long
randomLong
(long startInclusive, long endExclusive) Generates a random long within the specified range.static RandomUtils
secure()
Gets the singleton instance based onSecureRandom.getInstanceStrong()
which uses an algorithms/providers specified in thesecurerandom.strongAlgorithms
Security
property.toString()
-
Constructor Details
-
RandomUtils
Deprecated.TODO Make private in 4.0.RandomUtils
instances should NOT be constructed in standard programming. Instead, the class should be used asRandomUtils.nextBytes(5);
.This constructor is public to permit tools that require a JavaBean instance to operate.
-
-
Method Details
-
nextBoolean
Generates a random boolean value.- Returns:
- the random boolean
- Since:
- 3.5
-
nextBytes
Generates an array of random bytes.- Parameters:
count
- the size of the returned array- Returns:
- the random byte array
- Throws:
IllegalArgumentException
- ifcount
is negative
-
nextDouble
Generates a random double between 0 (inclusive) and Double.MAX_VALUE (exclusive).- Returns:
- the random double
- Since:
- 3.5
- See Also:
-
nextDouble
Generates a random double within the specified range.- Parameters:
startInclusive
- the smallest value that can be returned, must be non-negativeendExclusive
- the upper bound (not included)- Returns:
- the random double
- Throws:
IllegalArgumentException
- ifstartInclusive > endExclusive
or ifstartInclusive
is negative
-
nextFloat
Generates a random float between 0 (inclusive) and Float.MAX_VALUE (exclusive).- Returns:
- the random float
- Since:
- 3.5
- See Also:
-
nextFloat
Generates a random float within the specified range.- Parameters:
startInclusive
- the smallest value that can be returned, must be non-negativeendExclusive
- the upper bound (not included)- Returns:
- the random float
- Throws:
IllegalArgumentException
- ifstartInclusive > endExclusive
or ifstartInclusive
is negative
-
nextInt
Generates a random int between 0 (inclusive) and Integer.MAX_VALUE (exclusive).- Returns:
- the random integer
- Since:
- 3.5
- See Also:
-
nextInt
Generates a random integer within the specified range.- Parameters:
startInclusive
- the smallest value that can be returned, must be non-negativeendExclusive
- the upper bound (not included)- Returns:
- the random integer
- Throws:
IllegalArgumentException
- ifstartInclusive > endExclusive
or ifstartInclusive
is negative
-
nextLong
Generates a random long between 0 (inclusive) and Long.MAX_VALUE (exclusive).- Returns:
- the random long
- Since:
- 3.5
- See Also:
-
nextLong
Generates a random long within the specified range.- Parameters:
startInclusive
- the smallest value that can be returned, must be non-negativeendExclusive
- the upper bound (not included)- Returns:
- the random long
- Throws:
IllegalArgumentException
- ifstartInclusive > endExclusive
or ifstartInclusive
is negative
-
secure
Gets the singleton instance based onSecureRandom.getInstanceStrong()
which uses an algorithms/providers specified in thesecurerandom.strongAlgorithms
Security
property.The method
SecureRandom.getInstanceStrong()
is called on-demand.- Returns:
- the singleton instance based on
SecureRandom.getInstanceStrong()
. - Since:
- 3.16.0
- See Also:
-
randomBoolean
Generates a random boolean value.- Returns:
- the random boolean
- Since:
- 3.16.0
-
randomBytes
Generates an array of random bytes.- Parameters:
count
- the size of the returned array- Returns:
- the random byte array
- Throws:
IllegalArgumentException
- ifcount
is negative- Since:
- 3.16.0
-
randomDouble
Generates a random double between 0 (inclusive) and Double.MAX_VALUE (exclusive).- Returns:
- the random double
- Since:
- 3.16.0
- See Also:
-
randomDouble
Generates a random double within the specified range.- Parameters:
startInclusive
- the smallest value that can be returned, must be non-negativeendExclusive
- the upper bound (not included)- Returns:
- the random double
- Throws:
IllegalArgumentException
- ifstartInclusive > endExclusive
or ifstartInclusive
is negative- Since:
- 3.16.0
-
randomFloat
Generates a random float between 0 (inclusive) and Float.MAX_VALUE (exclusive).- Returns:
- the random float
- Since:
- 3.16.0
- See Also:
-
randomFloat
Generates a random float within the specified range.- Parameters:
startInclusive
- the smallest value that can be returned, must be non-negativeendExclusive
- the upper bound (not included)- Returns:
- the random float
- Throws:
IllegalArgumentException
- ifstartInclusive > endExclusive
or ifstartInclusive
is negative
-
randomInt
Generates a random int between 0 (inclusive) and Integer.MAX_VALUE (exclusive).- Returns:
- the random integer
- Since:
- 3.16.0
- See Also:
-
randomInt
Generates a random integer within the specified range.- Parameters:
startInclusive
- the smallest value that can be returned, must be non-negativeendExclusive
- the upper bound (not included)- Returns:
- the random integer
- Throws:
IllegalArgumentException
- ifstartInclusive > endExclusive
or ifstartInclusive
is negative- Since:
- 3.16.0
-
randomLong
Generates a random long between 0 (inclusive) and Long.MAX_VALUE (exclusive).- Returns:
- the random long
- Since:
- 3.16.0
- See Also:
-
randomLong
Generates a random long within the specified range.- Parameters:
startInclusive
- the smallest value that can be returned, must be non-negativeendExclusive
- the upper bound (not included)- Returns:
- the random long
- Throws:
IllegalArgumentException
- ifstartInclusive > endExclusive
or ifstartInclusive
is negative- Since:
- 3.16.0
-
toString
-