Android APIs
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 ()

Added in API level 1

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

public Random (long seed)

Added in 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 ()

Added in API level 1

Returns a pseudo-random uniformly distributed boolean.

public void nextBytes (byte[] buf)

Added in API level 1

Fills buf with random bytes.

public double nextDouble ()

Added in API level 1

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

public float nextFloat ()

Added in API level 1

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

public synchronized double nextGaussian ()

Added in 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)

Added in API level 1

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

public int nextInt ()

Added in API level 1

Returns a pseudo-random uniformly distributed int.

public long nextLong ()

Added in API level 1

Returns a pseudo-random uniformly distributed long.

public synchronized void setSeed (long seed)

Added in 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)

Added in 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.

Subclasses only need to override this method to alter the behavior of all the public methods.