</>

Technology

Java Programs

Difficulty

Beginner

Interview Question

Write a Java program to generate random numbers in a given range.

Answer

Generate Random Numbers in Java

Java
import java.util.Random;

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

        // Method 1: Using Random class
        System.out.println("Random integers between 0 and 50 using Random class:");
        Random random = new Random();
        for (int i = 0; i < 5; i++) {
            System.out.println(random.nextInt(50));  // generates 0 to 49
        }

        // Method 2: Using Math.random()
        System.out.println("Random integers between 0 and 50 using Math.random():");
        for (int i = 0; i < 5; i++) {
            System.out.println((int) (Math.random() * 50));  // 0.0-1.0 × 50 = 0-49
        }
    }
}

Sample Output (values vary each run)

CODE
Random integers between 0 and 50 using Random class:
23
7
41
15
38
Random integers between 0 and 50 using Math.random():
12
29
3
47
8

Common Random Patterns

Java
Random rand = new Random();

// Random int between 0 and max-1
int num = rand.nextInt(100);         // 0 to 99

// Random int between min and max (inclusive)
int min = 10, max = 50;
int inRange = rand.nextInt((max - min) + 1) + min;  // 10 to 50

// Random boolean
boolean flag = rand.nextBoolean();

// Random double (0.0 to 1.0)
double d = rand.nextDouble();

// Random long
long l = rand.nextLong();

Using Math.random()

Java
// Between 1 and 100 (inclusive)
int num = (int)(Math.random() * 100) + 1;

// Random element from array
String[] names = {"John", "Jane", "Bob"};
String picked = names[(int)(Math.random() * names.length)];

Automation Testing Relevance

Java
// Generate unique email for test registration
String email = "qa" + new Random().nextInt(100000) + "@test.com";
driver.findElement(By.id("email")).sendKeys(email);

// Random wait time (avoid fixed sleep)
int wait = new Random().nextInt(3) + 2;  // 2 to 4 seconds
Thread.sleep(wait * 1000);  // use sparingly, prefer explicit waits

Follow AutomateQA