public class

Random

extends Object
implements Serializable
java.lang.Object
   ↳ java.util.Random
Known Direct Subclasses

Class Overview

This class provides methods that return pseudo-random values.

It is dangerous to seed Random with the current time because that value is more predictable to an attacker than the default seed.

This class is thread-safe.

See Also

Summary

Public Constructors
Random()
Constructs a random generator with an initial state that is unlikely to be duplicated by a subsequent instantiation.
Random(long seed)
Construct a random generator with the given seed as the initial state.
Public Methods
boolean nextBoolean()
Returns a pseudo-random uniformly distributed boolean.
void nextBytes(byte[] buf)
Fills buf with random bytes.
double nextDouble()
Returns a pseudo-random uniformly distributed double in the half-open range [0.0, 1.0).
float nextFloat()
Returns a pseudo-random uniformly distributed float in the half-open range [0.0, 1.0).
synchronized double nextGaussian()
Returns a pseudo-random (approximately) normally distributed double with mean 0.0 and standard deviation 1.0.
int nextInt(int n)
Returns a pseudo-random uniformly distributed int in the half-open range [0, n).
int nextInt()
Returns a pseudo-random uniformly distributed int.
long nextLong()
Returns a pseudo-random uniformly distributed long.
synchronized void setSeed(long seed)
Modifies the seed using a linear congruential formula presented in The Art of Computer Programming, Volume 2, Section 3.2.1.
Protected Methods
synchronized int next(int bits)
Returns a pseudo-random uniformly distributed int value of the number of bits specified by the argument bits as described by Donald E.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public Random ()

Since: API Level 1

Constructs a random generator with an initial state that is unlikely to be duplicated by a subsequent instantiation.

The initial state (that is, the seed) is partially based on the current time of day in milliseconds.

public Random (long seed)

Since: API Level 1

Construct a random generator with the given seed as the initial state. Equivalent to Random r = new Random(); r.setSeed(seed);.

This constructor is mainly useful for predictability in tests. The default constructor is likely to provide better randomness.

Public Methods

public boolean nextBoolean ()

Since: API Level 1

Returns a pseudo-random uniformly distributed boolean.

public void nextBytes (byte[] buf)

Since: API Level 1

Fills buf with random bytes.

public double nextDouble ()

Since: API Level 1

Returns a pseudo-random uniformly distributed double in the half-open range [0.0, 1.0).

public float nextFloat ()

Since: API Level 1

Returns a pseudo-random uniformly distributed float in the half-open range [0.0, 1.0).

public synchronized double nextGaussian ()

Since: API Level 1

Returns a pseudo-random (approximately) normally distributed double with mean 0.0 and standard deviation 1.0. This method uses the polar method of G. E. P. Box, M. E. Muller, and G. Marsaglia, as described by Donald E. Knuth in The Art of Computer Programming, Volume 2: Seminumerical Algorithms, section 3.4.1, subsection C, algorithm P.

public int nextInt (int n)

Since: API Level 1

Returns a pseudo-random uniformly distributed int in the half-open range [0, n).

public int nextInt ()

Since: API Level 1

Returns a pseudo-random uniformly distributed int.

public long nextLong ()

Since: API Level 1

Returns a pseudo-random uniformly distributed long.

public synchronized void setSeed (long seed)

Since: API Level 1

Modifies the seed using a linear congruential formula presented in The Art of Computer Programming, Volume 2, Section 3.2.1.

Protected Methods

protected synchronized int next (int bits)

Since: API Level 1

Returns a pseudo-random uniformly distributed int value of the number of bits specified by the argument bits as described by Donald E. Knuth in The Art of Computer Programming, Volume 2: Seminumerical Algorithms, section 3.2.1.

Most applications will want to use one of this class' convenience methods instead.