# Generate a Random Number Between 1 and 10 in Java

We will look at the steps to generate a random number between 1 and 10 randomly in Java. We will see three Java packages or classes that can generate a random number between 1 and 10 and which of them is the most suitable one to use.

## `random.nextInt()` to Generate a Random Number Between 1 and 10

`java.util.Random` is a package that comes with Java, and we can use it to generate a random number between a range. In our case, the range is 1 to 10.

This package has a class `Random` that allows us to generate multiple types of numbers, whether it is an `int` or a `float`. Check out the example to better understand.

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

public class Main {
public static void main(String[] args) {
int min = 1;
int max = 10;

Random random = new Random();

int value = random.nextInt(max + min) + min;
System.out.println(value);
}
}
``````

Output:

``````	6
``````

To show that the above technique works and generates random numbers every time, we can use a loop to generate a new random number until it finishes. As we do not have a large range of numbers, the random numbers may be repeated.

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

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

Random random = new Random();

for(int i = 1; i <=10; i++) {
int value = random.nextInt((10 - 1) + 1) + 1;
System.out.println(value);
}
}

``````

Output:

``````10
7
2
9
2
7
6
4
9
``````

## `Math.random()` to Generate Random Numbers Between 1 to 10

Another class that can help us achieve our goal is `Math` with multiple static functions to randomize numbers. We are going to use the `random()` method. It returns a random value of the `float` type. This is why we have to cast it into an `int`.

``````public class Main {
public static void main(String[] args) {
int min = 1;
int max = 10;
for(int i = min; i <=max; i++) {
int getRandomValue = (int) (Math.random()*(max-min)) + min;
System.out.println(getRandomValue);

}
}
``````

Output:

``````5
5
2
1
6
9
3
6
5
7
``````

## `ThreadLocalRandom.current.nextInt()` to Generate Random Numbers Between 1 to 10

The last method in our list to get random numbers between 1 and 10 is using the class `ThreadLocalRandom` that was introduced in JDK 7 for multi-threaded programs.

We can see below that we have to call the `current()` method of the class as we want the random numbers to be generated in the current thread.

``````import java.util.concurrent.ThreadLocalRandom;

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

int min = 1;
int max = 10;

for(int i = 1; i <=10; i++) {
int getRandomValue = ThreadLocalRandom.current().nextInt(min, max) + min;

System.out.println(getRandomValue);
}
}

}
``````

Output:

``````3
4
5
8
6
2
6
10
6
2
``````
Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

## Related Article - Java Number

• Round Up A Number in Java