java random class tutorial

The java.util.Random class is used to generate random numbers. Java Random class objects are thread safe. It provides several methods to generate random numbers of type integer, double, long, float etc.

Note: Random class objects are not suitable for security sensitive applications so it is better to use java.security.SecureRandom in these cases.

Java Random class constructors

Constructor Description
Random() It creates a new random number generator.
Random(long seed) This creates a new random number generator using a single long seed.

 

Java Random class methods

Method Description
protected int next(int bits) It generates the next pseudorandom number.
boolean nextBoolean() It returns the next pseudorandom, uniformly distributed boolean value from this random number generator’s sequence.
void nextBytes(byte[] bytes) It generates random bytes and places them into a user-supplied byte array.
double nextDouble() It returns the next pseudorandom, uniformly distributed double value between 0.0 and 1.0 from this random number generator’s sequence.
float nextFloat() It returns the next pseudorandom, uniformly distributed float value between 0.0 and 1.0 from this random number generator’s sequence.
double nextGaussian() It returns the next pseudorandom, Gaussian (“normally”) distributed double value with mean 0.0 and standard deviation 1.0 from this random number generator’s sequence.
int nextInt() It returns the next pseudorandom, uniformly distributed int value from this random number generator’s sequence.
int nextInt(int n) It returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator’s sequence.
long nextLong() It returns the next pseudorandom, uniformly distributed long value from this random number generator’s sequence.
void setSeed(long seed) It sets the seed of this random number generator using a single long seed.

 

Example

package com.w3schools;

import java.util.Random;

public class Test {
	public static void main(String args[]){
		Random random = new Random();		
		//It generates boolean value
		System.out.println(random.nextBoolean());		
		//It generates double value
		System.out.println(random.nextDouble());		
		//It generates float value
		System.out.println(random.nextFloat());		
		//It generates int value
		System.out.println(random.nextInt());		
		//It generates int value within specific limit
		System.out.println(random.nextInt(50));
	}
}

Output

true
0.29472606320906436
0.11627269
368153135
37

Java random class examples