Summary: In this programming example, we will learn to generate random numbers in Java.

In Java, we can generate random numbers using the following two classes:

1. Random
2. Math

Let’s see an example of each of them.

## Method 1: Using Random Class

The `nextInt(int MAX)` method of the `Random` class (available in `java.util` package) returns a random integer less than MAX and the nextDouble() method of the same class returns the random floating value between 0 and 1.

Similarly, we can use `nextFloat(`), `nextLong()`, `nextShort()`, etc to generate specific types of a random number in Java.

``````import java.util.Random;

class Main {
public static void main(String[] args) {
Random random = new Random();

//Generate random number less than MAX
//Syntax: random.nextInt(MAX);
System.out.println("Random Integer less than 10: "+random.nextInt(10));

System.out.println("Random Integer less than 50: "+random.nextInt(50));

//Generate Random number betwenn MIN and MAX
//Syntax: random.nextInt(MAX-MIN) + MIN;
System.out.println("Random Integer Between 20 to 30: "+(random.nextInt(30-20) + 20));

//Generate Random Float/Double number
System.out.println("Random Double: "+random.nextDouble());

System.out.println("Random Double less than 20: "+random.nextDouble()*20);
}
}``````

Output:

Random Integer less than 10: 8
Random Integer less than 50: 20
Random Integer Between 20 to 30: 25
Random Double: 0.06373045731187232
Random Double less than 20: 9.083174360349421

## Method 2: Using Math Class

The static `random()` method of `Math` class (available in the `java.lang` package) can also generate a random number in Java.

Here is the Java program that generates random integers and floating numbers:

``````class Main {
public static void main(String[] args) {

//Generate random double
System.out.println("Random Double: " + Math.random());

//Generate random number less than MAX
//Syntax:  (int)(Math.random()*MAX);
System.out.println("Random Integer less than 10: "+ (int)(Math.random()*10));

//Generate random number between MIN and MAX
//Syntax:  (int)(Math.random()*(MAX-MIN) + MIN);
System.out.println("Random Integer between 40 and 50: "+ (int)(Math.random() * (50-40) + 40));

}
}``````

Output:

Random Double: 0.17455668055083073
Random Integer less than 10: 5
Random Integer between 40 and 50: 43

There are the two ways using which we can easily generate random numbers in Java without the need of external library.