Table of Contents
Random Number Generator Functions in Java
1. Math.random() Method
Example
2. java.util.Random Class
3. ThreadLocalRandom class
Generation of Integers
Generating Float point Numbers
Conclusion – Random Number Generator in Java
Home Java javaTutorial Random Number Generator in Java

Random Number Generator in Java

Aug 30, 2024 pm 04:27 PM
java

Random Numbers are commonly used in creating applications like Dice for a board game, Gambling Program, etc. Normally, random number generation takes a lot of time. But, in the Java programming language, this can be achieved using three ways. They are addressed in the below section Random Number Generator Functions in Java.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Random Number Generator Functions in Java

In Java, Random Numbers can be generated using 3 ways:

  • Math.random method
  • java.util.Random class
  • ThreadLocalRandom class

1. Math.random() Method

Java Math class offers a number of methods to work on calculations such as logarithms, average, exponentiation, etc. random() is one of the methods among them that returns a positive double value within the range of 0.0 and 1.0 where 0.0 is inclusive, and 1.0 is exclusive. This method can be used with or without using parameters. If parameters are given, the random number generated will be within the given parameter’s range.

Example #1

Code:

public class RandomNumber {
double num; //Declare a variable num
//Method which generates a random number
public double randnum()
{
num=Math.random();
return num;
}
// Main Method of a program
public static void main(String[] args) {
//Printing a random number
System.out.println("Random Number generated inside main method: "+Math.random());
//Create an object of the class RandomNumber
RandomNumber randomobj=new RandomNumber();
//Store the return value obtained from randnum method in a variable randomval
double randomval=randomobj.randnum();
//Printing the random number stored in variable randomval
System.out.println("Random Number generated inside randomnumber method: "+randomval);
}
}

Output:

Random Number Generator in Java

In the above Example, Random Number is generated using the Math.random() method in two ways-Directly applying it inside the main method and calling a method that contains Math.random() using the object.  As mentioned in the explanation above, we can see that 2 random numbers are generated within the range of 0.0 and 1.0.

To generate a random number within the range of parameters, the general expression used is mentioned below:

Math.random()*  (( maxvalue – minvalue ) +1 ) + minvalue

Example #2

Where maxvalue is the upper bound of the range and min value is the lower bound of the range. For Example, in order to generate a random number between 10 and 20, set the maxvalue as 20 and the minvalue as 10.

Code:

public class RandomNumParameters {
public double randomnum(double x,double y)//max value-y, min value-x
{
double z =(Math.random()*((y-x)+1)+x); //Formula for random number generation within a range
return z;
}
public static void main(String[] args)
{
RandomNumParameters ran=new RandomNumParameters(); //Create instance for the class RandomNumParameters
double num=ran.randomnum(3.0, 10.0); //Call the Method
System.out.println("Random number generated within the range of 3 and 10: "+num );
} }

Output:

Random Number Generator in Java

2. java.util.Random Class

Java.util.random class generates random numbers of different data types such as float, long, integer, double, Boolean, etc. It is also possible to pass the range of numbers as arguments to generate a random number within that range. In order to use this class, the Random class of java.util must be imported (java.util.Random). Once this class is imported, create an instance and call the methods such as next long(), nextInt(), etc. using that instance.

Example

Code:

//Java program to generate Random numbers using Random class
package Sample;
import java.util.Random; //import Random Class
public class RandomNum {
public static void main(String[] args) {
Random rand=new Random(); //Create instance of Random class
double randomnum=rand.nextDouble(); //Assign the Random Double value in randomnum variable
System.out.println("Random Double value: "+ randomnum);
}
}

Output:

Random Number Generator in Java

In the above program, a random double value is generated using the method nextDouble().

3. ThreadLocalRandom class

ThreadLocalRandom class is a specialized type of Random class that is introduced in Java version 1.7. ThreadLocalRandom.current().nextInt() is one of the common methods that is used to generate random numbers. It is normally used in multi-threaded applications.

Example

Code:

//Java Program to generate random numbers using ThreadLocalRandom Class
import java.util.concurrent.ThreadLocalRandom;
public class RandomNumThread {
public static void main(String[] args) {
//print a random double
System.out.println("Random Double value using ThreadLocalRandom: "+ThreadLocalRandom.current().nextDouble());
}
}

Output:

Random Number Generator in Java

Generation of Integers

Random integers can be generated using the ThreadLocalRandom class and Random Class. In both cases, a method nextInt() is used for the same:

Example

Code:

//Java program to generate Random integer numbers using Random and THreadLocalRandom Class
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class RandomInteger {
public static void main(String[] args) {
Random rnd=new Random(); //Create instance of Random class
int randomnum1=rnd.nextInt(); //Random Integer value using Random Class
int randomnum2=rnd.nextInt(30); //Random Integer value within the range of 30
int randomnum3= ThreadLocalRandom.current().nextInt(); //Random Integer value using ThreadLocalRandom Class
System.out.println("Random Integer value using Random Class: "+ randomnum1);
System.out.println("Random Integer value within the range of 30: "+ randomnum2);
System.out.println("Random Integer value using ThreadLocalRandom Class: "+ randomnum3);
}
}

Output:

Random Number Generator in Java

In the above example, three Random integer type numbers are generated where one of the nextInt() method has 30 as an argument. So, while generating a random number, 30 will be set as the upper limit, and zero (default lower limit)will be set as the lower limit.

Generating Float point Numbers

Similar to generating integer numbers, floating-point numbers can be generated using a method nextFloat(). This method can be used in both Random Class and ThreadLocalRandom Class:

Example

Code:

//Java program to generate Random Float numbers using Random and THreadLocalRandom Class
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class RandomFloat {
public static void main(String[] args) {
Random rnd=new Random(); //Create instance of Random class
float randomnum1=rnd.nextFloat(); //Random Float value using Random Class
float randomnum2= ThreadLocalRandom.current().nextFloat(); //Random Float value using ThreadLocalRandom Class
System.out.println("Random float value using Random Class: "+ randomnum1);
System.out.println("Random float value using ThreadLocalRandom Class: "+ randomnum2);
}
}

Output:

Random Number Generator in Java

Conclusion – Random Number Generator in Java

Java contains a plethora of functions that can be used in programs. This helps in reducing the processing time and lines of code. Random Number Generation is one task where we can use some of these functions. This document covers the different methods to achieve this.

The above is the detailed content of Random Number Generator in Java. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1583
276
How to send and receive messages over a WebSocket in Java How to send and receive messages over a WebSocket in Java Aug 16, 2025 am 10:36 AM

Create a WebSocket server endpoint to define the path using @ServerEndpoint, and handle connections, message reception, closing and errors through @OnOpen, @OnMessage, @OnClose and @OnError; 2. Ensure that javax.websocket-api dependencies are introduced during deployment and automatically registered by the container; 3. The Java client obtains WebSocketContainer through the ContainerProvider, calls connectToServer to connect to the server, and receives messages using @ClientEndpoint annotation class; 4. Use the Session getBasicRe

phpMyAdmin security best practices phpMyAdmin security best practices Aug 17, 2025 am 01:56 AM

To effectively protect phpMyAdmin, multiple layers of security measures must be taken. 1. Restrict access through IP, only trusted IP connections are allowed; 2. Modify the default URL path to a name that is not easy to guess; 3. Use strong passwords and create a dedicated MySQL user with minimized permissions, and it is recommended to enable two-factor authentication; 4. Keep the phpMyAdmin version up to fix known vulnerabilities; 5. Strengthen the web server and PHP configuration, disable dangerous functions and restrict file execution; 6. Force HTTPS to encrypt communication to prevent credential leakage; 7. Disable phpMyAdmin when not in use or increase HTTP basic authentication; 8. Regularly monitor logs and configure fail2ban to defend against brute force cracking; 9. Delete setup and

How to deploy a Java application How to deploy a Java application Aug 17, 2025 am 12:56 AM

PrepareyourapplicationbyusingMavenorGradletobuildaJARorWARfile,externalizingconfiguration.2.Chooseadeploymentenvironment:runonbaremetal/VMwithjava-jarandsystemd,deployWARonTomcat,containerizewithDocker,orusecloudplatformslikeHeroku.3.Optionally,setup

You are not currently using a display attached to an NVIDIA GPU [Fixed] You are not currently using a display attached to an NVIDIA GPU [Fixed] Aug 19, 2025 am 12:12 AM

Ifyousee"YouarenotusingadisplayattachedtoanNVIDIAGPU,"ensureyourmonitorisconnectedtotheNVIDIAGPUport,configuredisplaysettingsinNVIDIAControlPanel,updatedriversusingDDUandcleaninstall,andsettheprimaryGPUtodiscreteinBIOS/UEFI.Restartaftereach

Using XSLT Parameters to Create Dynamic Transformations Using XSLT Parameters to Create Dynamic Transformations Aug 17, 2025 am 09:16 AM

XSLT parameters are a key mechanism for dynamic conversion through external passing values. 1. Use declared parameters and set default values; 2. Pass the actual value from application code (such as C#) through interfaces such as XsltArgumentList; 3. Control conditional processing, localization, data filtering or output format through $paramName reference parameters in the template; 4. Best practices include using meaningful names, providing default values, grouping related parameters, and performing value verification. The rational use of parameters can make XSLT style sheets highly reusable and maintainable, and the same style sheets can produce diversified output results based on different inputs.

What is the assert keyword in Java? What is the assert keyword in Java? Aug 17, 2025 am 12:52 AM

TheassertkeywordinJavaisusedtovalidateassumptionsduringdevelopment,throwinganAssertionErroriftheconditionisfalse.2.Ithastwoforms:assertcondition;andassertcondition:message;withthelatterprovidingacustomerrormessage.3.Assertionsaredisabledbydefaultandm

How to run a command line command from Java How to run a command line command from Java Aug 16, 2025 am 11:52 AM

Use Runtime.exec() to execute external commands, but string arrays need to be used to avoid space problems; 2. It is recommended to use ProcessBuilder because it is more flexible, and can set environment variables, working directories and clear syntax; 3. You should read stdout and stderr at the same time and process input and output streams; 4. Avoid command injection and properly handle exceptions and stream closures; 5. Pay attention to the platform dependence of commands, and new code should give priority to using ProcessBuilder to ensure security and maintainability.

Operating System not found [Fixed] Operating System not found [Fixed] Aug 17, 2025 am 09:10 AM

Ifyourcomputershows"OperatingSystemnotfound,"trythesesteps:1.CheckBIOS/UEFIbootorder.2.Verifydiskconnections.3.RepairbootloaderusingWindowsRecovery.4.ReassigndriveletterviaDiskManagement.5.Reinstalltheoperatingsystemifnecessary.

See all articles