public class Random extends Object implements Serializable
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 threadsafe.
SecureRandom
,
Serialized FormConstructor and Description 

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. 
Modifier and Type  Method and Description 

protected int 
next(int bits)
Returns a pseudorandom uniformly distributed
int value of
the number of bits specified by the argument bits as
described by Donald E. 
boolean 
nextBoolean()
Returns a pseudorandom uniformly distributed
boolean . 
void 
nextBytes(byte[] buf)
Fills
buf with random bytes. 
double 
nextDouble()
Returns a pseudorandom uniformly distributed
double
in the halfopen range [0.0, 1.0). 
float 
nextFloat()
Returns a pseudorandom uniformly distributed
float
in the halfopen range [0.0, 1.0). 
double 
nextGaussian()
Returns a pseudorandom (approximately) normally distributed
double with mean 0.0 and standard deviation 1.0. 
int 
nextInt()
Returns a pseudorandom uniformly distributed
int . 
int 
nextInt(int n)
Returns a pseudorandom uniformly distributed
int
in the halfopen range [0, n). 
long 
nextLong()
Returns a pseudorandom uniformly distributed
long . 
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.

public Random()
The initial state (that is, the seed) is partially based on the current time of day in milliseconds.
public Random(long seed)
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.
protected int next(int bits)
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.
public boolean nextBoolean()
boolean
.public void nextBytes(byte[] buf)
buf
with random bytes.public double nextDouble()
double
in the halfopen range [0.0, 1.0).public float nextFloat()
float
in the halfopen range [0.0, 1.0).public double nextGaussian()
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
.public int nextInt(int n)
int
in the halfopen range [0, n).public long nextLong()
long
.public void setSeed(long seed)