# Java Program to Generate Random Numbers

Write a Java program to generate random numbers with an example. For example, we can use the Math random method, class, and ThreadLocalRandom class to generate numbers.

## Java Program to Generate Random Numbers using Math function

We use the Math.random() method in this example, which generates numbers between 0 and 1 of double type. We can also typecast the output to get the necessary data type.

```package RemainingSimplePrograms;

public class Example {

public static void main(String[] args) {

System.out.println("The First  = " + Math.random());

System.out.println("The Second = " + Math.random());

System.out.println("The Third  = " + Math.random());

System.out.println("The Fourth = " + Math.random());
}
}```
``````The First  = 0.20037158212760142
The Second = 0.0012068894419960952
The Third  = 0.18700555955501663
The Fourth = 0.3230234616758232``````

By using the Javac Math.random() * (max – min + 1) + min we can generate the numbers between the min and max values.

```package RemainingSimplePrograms;

public class Example2 {

public static void main(String[] args) {

int min = 100, max = 300;

System.out.print("The Doubles between " + min + " and " + max  + " = " );
double rand1 = Math.random() * (max - min + 1) + min;
System.out.print(rand1);

System.out.print("\nThe Number between " + min + " and " + max  + " = " );
int rand2 = (int)(Math.random() * (max - min + 1) + min);
System.out.print(rand2);
}
}```
``````The Doubles between 100 and 300 = 101.43411590322778
The Number between 100 and 300 = 282``````

## Java Program to Generate Random Numbers using for loop

Until now, we generated a single value between a range. However, with the help of for loop, we can generate them within a range.

```public class Example {

public static void main(String[] args) {
int min = 10, max = 100;

System.out.println("Ten Numbers between " + min + " and " + max);
for(int i = 1; i <= 10; i++)
{
int rdNum = (int)(Math.random() * (max - min + 1) + min);
System.out.print(rdNum + "   ");
}

System.out.println("\nTwenty Numbers between 100 and 250");
for(int i = 1; i <= 10; i++)
{
int rdNum = (int)(Math.random() * (250 - 100 + 1) + 100);
System.out.print(rdNum + "   ");
}
}
}```

## Java Program to Generate Random Numbers using class

This random class has different methods to generate numbers. They are

• nextInt() – Generate values between 0 and -1
• nextInt(max_Value)
• nextFloat() – Returns values between 0.0 and 1.0
• nextDouble() – Return values between 0.0 and 1.0
• nextLong()
• nextBoolean()
```package RemainingSimplePrograms;

import java.util.Random;

public class Example4 {

public static void main(String[] args) {

Random rand = new Random();

System.out.println("Integer Values");
System.out.println(rand.nextInt());
System.out.println(rand.nextInt(20));
System.out.println(rand.nextInt(100));

System.out.println("Double Values");
System.out.println(rand.nextDouble());
System.out.println(rand.nextDouble());

System.out.println("Float Values");
System.out.println(rand.nextFloat());
System.out.println(rand.nextFloat());

System.out.println("Long Values");
System.out.println(rand.nextLong());
System.out.println(rand.nextLong());
}
}```
``````Integer Values
1907114976
4
34
Double Values
0.9425130257739933
0.35445514266974565
Float Values
0.26128042
0.47151804
Long Values
1983140345491940719
8269807721314480176``````

In this example, we used for loop to generate ten random numbers of Integer type of max limit value 100.

```package RemainingSimplePrograms;

import java.util.Random;

public class Example5 {

public static void main(String[] args) {

Random rand = new Random();

for(int i = 1; i <= 10; i++)
{
System.out.print(rand.nextInt(100) + 1 + "   ");
}
}
}```
``9   45   62   84   18   2   10   33   28   60 ``

## Java Program to Generate Random Numbers using ThreadLocalRandom

We can also use the ThreadLocalRandom to generate random numbers within a range. The nextInt(), nextDouble(), and nextLong() accepts the minimum and maximum limit value.

```package RemainingSimplePrograms;

public class Example6 {

public static void main(String[] args) {

System.out.println("Integer Values");

System.out.println("Double Values");

System.out.println("Float Values");

System.out.println("Long Values");
}
}```
``````Integer Values
536433268
17
105
Double Values
0.35695024289926547
29.875628014935078
45.29405097588917
Float Values
0.62107533
0.9211104
Long Values
-1523132321353307594
4
542``````

This program uses ThreadLocalRandom and the for loop.

```package RemainingSimplePrograms;

public class Example7 {

public static void main(String[] args) {

int min = 100, max = 300;

System.out.println("Ten Numbers are");
for(int i = 1; i <= 10; i++)
{
System.out.print(ThreadLocalRandom.current().nextInt(100) + 1 + "   ");
}

System.out.println("\nFifteen Numbers are");
for(int i = 0; i < 15; i++)
{
``````Ten Numbers are