How do I generate random integers within a specific range in Java?

How do I generate a random int value in a specific range?

I have tried the following, but those do not work:

Attempt 1:

randomNum = minimum + (int)(Math.random() * maximum);

Bug: randomNum can be bigger than maximum.

Attempt 2:

Random rn = new Random();
int n = maximum - minimum + 1;
int i = rn.nextInt() % n;
randomNum =  minimum + i;

Bug: randomNum can be smaller than minimum.

Leave a Comment