Random Number Generator Java

Hello everyone!!! Let me explain random number generator java. Well, there are many ways in java to generate random numbers.

random number generator java

Example: random number generator java

In the following example we are going to demonstrate java random number generator using for loop.

import java.util.Scanner;
import java.util.Random;

public class RandomNumbers
{
   public static void main(String[] args)
   {
      int a;
      int range;
      int randomNumber;
 
      Random rd = new Random();
      Scanner sc = new Scanner(System.in);
      System.out.println("Please enter random numbers you want to generate: ");
      range = sc.nextInt();
 
      // java random number generator between range 0 - 100
 
      for(a = 0;a <= range; a++)
      {
         randomNumber = rd.nextInt(100);
         System.out.print(randomNumber + " ");
      }
   }
}

Output:

random number generator java


Java random using math.random()

Let’s see an example on how to generate random number java using math.random() method.

Also Read – Java Program To Find Prime Number

Math class has many methods for executing numeric calculations and random() method is one of them.

This method returns a double value which is greater than or equal to zero or less than one.

public class JavaRandom 
{
   public static void main(String[] args) 
   {
      // generate random number java
      // returns a double value
      System.out.println("Random number java doubles : " + Math.random());
      System.out.println("Random number java doubles : " + Math.random());
   }
}

Output:

Random number java doubles : 0.10832457378843408
Random number java doubles : 0.827561704322581


Using Math.random() method and scanner class

Now here’s java random number generator using math.random() method and scanner class,

import java.util.Scanner;

public class RandomGeneratorJava 
{
   public static void main(String[] args) 
   {
      Scanner sc = new Scanner(System.in);
      System.out.println("Please enter minimum number : ");
      int mini = sc.nextInt();
 
      System.out.println("Please enter maximum number : ");
      int max = sc.nextInt();
 
      int randomNum = mini + (int)(Math.random() * max);
 
      System.out.println("Random integer java : " + randomNum);
      sc.close();
   }
}

Output:

Please enter minimum number : 1
Please enter maximum number : 100
Random integer java : 26


Random java using ThreadLocalRandom class

Let’s see an example on how to generate a random numbers in java,

import java.util.concurrent.ThreadLocalRandom;

public class RandomJava 
{
   public static void main(String[] args) 
   {
      // random integer generator java
      int randomInteger = ThreadLocalRandom.current().nextInt(); 
      System.out.println("Java Random Int : " + randomInteger); 
 
      // random doubles
      double randomDouble = ThreadLocalRandom.current().nextDouble(); 
      System.out.println("Java Random Doubles : " + randomDouble); 
 
      // random booleans
      boolean randomBoolean = ThreadLocalRandom.current().nextBoolean();
      System.out.println("Java Random Booleans : " + randomBoolean);
   }
}

Output:

Java Random Int : -494216187
Java Random Doubles : 0.356150792349613
Java Random Booleans : true


Java random number within specific range

Here we are going to learn java random number generator within specific range. We are using import java.util.random class.

Also Read – Palindrome Number In Java

Here’s the example for java random,

import java.util.Random;

public class RandomNumberJava 
{
   public static void main(String[] args) 
   {
      System.out.println("Java generating random number in range 1 to 100 : ");
      int numStart = 1;
      int numEnd = 100;
      Random rd = new Random();
      for(int a = 1; a <= 100; ++a)
      {
         findRandom(numStart, numEnd, rd);
      }
   }
 
   private static void findRandom(int numBegin, int numStop, Random rand)
   {
      if(numBegin > numStop)
      {
         throw new IllegalArgumentException("Begin should not be more than Stop!!");
      }
      // java random range
      long range = (long)numStop - (long)numBegin + 1; 
      long num = (long)(range * rand.nextDouble());
      int randomNumber = (int)(num + numBegin); 
      System.out.print(" " + randomNumber); 
   }
}

Output:

Java generating random number in range 1 to 100 :
43 29 34 37 30 87 37 8 63 34 41 30 24 50 61 41 56 100 13 37 94 55 89 44 22 87 27 39 57 13 74 82 5 82 41 3 6 25 83 17 43 60 13 19 4 76 20 11 62 47 60 88 15 86 76 64 61 85 68 15 4 8 87 1 40 51 4 69 99 51 10 33 69 80 85 15 90 84 38 59 2 3 6 28 15 54 21 82 72 88 44 42 55 88 58 62 32 43 73 6


Method 1: java.util.Random class

In this method let’s learn how to generate random numbers within a range in java.

In the example below we are using java.util.Random class. This class provides a method nextInt which generates random numbers from zero to given value.

nextInt method takes argument of type integer.

import java.util.Random;

public class RandomIntJava 
{
   public static void main(String[] args) 
   {
      Random randomJava = new Random();
      int randomInt = randomJava.nextInt(50) + 1;
      System.out.println("Random number generator java : " + randomInt);
   }
}

Output:

Random number generator java : 37


Method 2 : generate random number java using ThreadLocalRandom class

Here’s an example on how to generate unique random numbers in java using ThreadLocalRandom class.

Also Read – ArrayList Java

ThreadLocalRandom class is suitable for generating random numbers in multithreaded programs.

import java.util.concurrent.ThreadLocalRandom;

public class JavaRandomInt 
{
   public static void main(String[] args)
   {
      int randomJava = ThreadLocalRandom.current().nextInt(1, 51);
      System.out.println("Random number generator java : " + randomJava);
   }
}

Output:

Random number generator java : 40


Random number generator java – normal distribution

Let’s see an example on how to use the random class in java

import java.util.Random;

public class JavaRandomClass 
{
   private Random rd = new Random();
 
   public static void main(String[] args) 
   {
      JavaRandomClass jrc = new JavaRandomClass();
      double mean = 100.0f; 
      double variance = 5.0f;
      for(int a = 1; a <= 10; ++a)
      {
         System.out.print("Random numbers java : " + jrc.calculateGaussian(mean, variance) + "\n");
      }
   }
 
   private double calculateGaussian(double numMean, double numVariance)
   {
      return numMean + rd.nextGaussian() * numVariance;
   }
}

Output:

Random numbers java : 98.35815775440709
Random numbers java : 99.28575088195106
Random numbers java : 97.13481928944009
Random numbers java : 98.91614002254799
Random numbers java : 102.34850302242776
Random numbers java : 95.95433799479389
Random numbers java : 102.29052805377971
Random numbers java : 93.82563142560224
Random numbers java : 103.80336905969705
Random numbers java : 100.38896826829429


Random in java using random class

Here’s unique random number generator java using random class. After creating object of random class we need to call nextInt() method.

import java.util.Random;
import java.util.Scanner;

public class RandomInJava 
{
   public static void main(String[] args) 
   {
      Scanner sc = new Scanner(System.in);
      System.out.println("Please enter minimum number : ");
      int mini = sc.nextInt();
 
      System.out.println("Please enter maximum number : ");
      int max = sc.nextInt();
 
      Random rd = new Random();
      int range = max - mini + 1;
      int randomNumber = rd.nextInt(range) + mini;
 
      System.out.println("Random integer java : " + randomNumber);
      sc.close();
   }
}

Output:

Please enter minimum number : 1
Please enter maximum number : 100
Random integer java : 16


Generate unique random numbers java

Let’s learn how to generate unique random numbers in java with an example,

import java.util.ArrayList;
import java.util.Collections;

public class UniqueRandomNumbers 
{
   public static void main(String[] args) 
   {
      ArrayList<Integer> al = new ArrayList<Integer>();
      for(int a = 1; a < 10; a++) 
      {
         al.add(new Integer(a));
      }
      Collections.shuffle(al);
      for(int b = 0; b < 4; b++) 
      {
         System.out.println("Random integer java : " + (al.get(b)));
      }
   }
}

Output:

Random integer java : 9
Random integer java : 8
Random integer java : 6
Random integer java : 2


Well, now let’s see how to generate random numbers in java without repetitions with an example,

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class RandomJavaExample 
{
   public static final int SIZE_REQUIRED = 20;
   public static final int NUMBER_RANGE = 100;
 
   public static void main(String[] args) 
   {
      Random rd = new Random();
 
      Set<Integer> set = new HashSet<Integer>(SIZE_REQUIRED);
 
      while(set.size()< SIZE_REQUIRED)
      {
         while(set.add(rd.nextInt(NUMBER_RANGE)) != true);
      }
      assert set.size() == SIZE_REQUIRED;
      System.out.println("Random integer java : " + set);
   }
}

Output:

Random integer java : [0, 64, 34, 3, 68, 5, 70, 39, 43, 77, 47, 16, 20, 21, 55, 26, 91, 61, 29, 95]


conclusion

So this was all about random number generator in java and how to generate unique random numbers in java.

I hope you have understood the concept. You can subscribe to my blog flower brackets if you haven’t already.

Do share this post if you like.

Related Posts