Class RandomUtils

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

public class RandomUtils extends 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
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final Random
    Random object used by random method.
  • Constructor Summary

    Constructors
    Constructor
    Description
    RandomUtils instances should NOT be constructed in standard programming.
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    Returns a random boolean value
    static byte[]
    nextBytes(int count)
    Creates an array of random bytes.
    static double
    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
    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
    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
    Returns a random long within 0 - Long.MAX_VALUE
    private static long
    nextLong(long n)
    Generates a long value between 0 (inclusive) and the specified value (exclusive).
    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
  • Field Details

    • RANDOM

      private static final Random RANDOM
      Random object used by random method. This has to be not local to the random method so as to not return the same value in the same millisecond.
  • Constructor Details

    • 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 Details

    • 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:
      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:
      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:
    • 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:
      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

      private static long nextLong(long n)
      Generates a long value between 0 (inclusive) and the specified value (exclusive).
      Parameters:
      n - Bound on the random number to be returned. Must be positive.
      Returns:
      a random long value between 0 (inclusive) and n (exclusive).
    • 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:
      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:
    • 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:
      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: