Class 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
    • Field Summary

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

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

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      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
      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 Detail

      • RANDOM

        private static final java.util.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 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)
      • 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:
        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)