## Generating a Random Number between 1 and 10 Java?

max

min

random.nextInt(max - min + 1) + min

As the documentation says, this method call returns "a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)". This means that you will get numbers from 0 to 9 in your case. So you've done everything correctly by adding one to that number.

## Generating a Random Number between 1 and 10 Java?

/** * Returns a psuedo-random number between min and max, inclusive. * The difference between min and max can be at most * <code>Integer.MAX_VALUE - 1</code>. * * @param min Minimim value * @param max Maximim value. Must be greater than min. * @return Integer between min and max, inclusive. * @see java.util.Random#nextInt(int) */ public static int randInt(int min, int max) { // Usually this can be a field rather than a method variable Random rand = new Random(); // nextInt is normally exclusive of the top value, // so add 1 to make it inclusive int randomNum = rand.nextInt((max - min) + 1) + min; return randomNum; }

As explained by Aurund, Random objects created within a short time of each other will tend to produce similar output, so it would be a good idea to keep the created Random object as a field, rather than in the method as I have done (for explanation purposes only).

Random rand = new Random(); I would go so far as to say that it must be a field. Random objects created within a short time of each other will tend to produce similar output. So many calls to randInt within a short period of time will not give evenly distributed output.

The standard way to do this is as follows:

## Generating a Random Number between 1 and 10 Java?

max

min

random.nextInt(max - min + 1) + min

As the documentation says, this method call returns "a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)". This means that you will get numbers from 0 to 9 in your case. So you've done everything correctly by adding one to that number.

## Generating a Random Number between 1 and 10 Java?

/** * Returns a psuedo-random number between min and max, inclusive. * The difference between min and max can be at most * <code>Integer.MAX_VALUE - 1</code>. * * @param min Minimim value * @param max Maximim value. Must be greater than min. * @return Integer between min and max, inclusive. * @see java.util.Random#nextInt(int) */ public static int randInt(int min, int max) { // Usually this can be a field rather than a method variable Random rand = new Random(); // nextInt is normally exclusive of the top value, // so add 1 to make it inclusive int randomNum = rand.nextInt((max - min) + 1) + min; return randomNum; }

As explained by Aurund, Random objects created within a short time of each other will tend to produce similar output, so it would be a good idea to keep the created Random object as a field, rather than in the method as I have done (for explanation purposes only).

Random rand = new Random(); I would go so far as to say that it must be a field. Random objects created within a short time of each other will tend to produce similar output. So many calls to randInt within a short period of time will not give evenly distributed output.

The standard way to do this is as follows:

## Generating a Random Number between 1 and 10 Java?

Random rn = new Random(); for(int i =0; i < 100; i++) { int answer = rn.nextInt(10) + 1; System.out.println(answer); }

import java.util.Random;

Random rn = new Random(); for(int i =0; i < 100; i++) { int answer = rn.nextInt(10) + 1; System.out.println(answer); }

import java.util.Random;

Also if you change the number in parenthesis it will create a random number from 0 to that number -1 (unless you add one of course like you have then it will be from 1 to the number you've entered).

This will work for generating a number 1 - 10. Make sure you import Random at the top of your code.

why is this i < 100 inside parenthesis of for? It should be 10

## Discussion