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
    • 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
      static long nextLong​(long startInclusive, long endExclusive)
      Returns a random long within the specified range.
      • Methods inherited from class java.lang.Object

        equals, 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)