Java – Número aleatorio en un rango con ThreadLocalRandom

En este artículo vamos a ver cómo obtener un número aleatorio que se encuentre en un rango en específico en el lenguaje de programación Java.

Por ejemplo, obtener un número que se encuentre entre 1 y 10. Dicho de otra manera, vamos a ver cómo obtener un número al azar que se encuentre entre un mínimo y un máximo.

Para elegir un número aleatorio en un rango usamos a ThreadLocalRandom en Java, el cual proporciona un método estático fácil de usar.

Número aleatorio en rango con Java

Primero importamos ThreadLocalRandom así:

import java.util.concurrent.ThreadLocalRandom;

Luego ya podemos llamar a los métodos que tiene ThreadLocalRandom. El que nos interesa es nextInt que es un método encadenado de ThreadLocalRandom.current.

Vamos a crear una función que devuelva un número aleatorio. Queda así:

public static int numeroAleatorioEnRango(int minimo, int maximo) {
  // nextInt regresa en rango pero con límite superior exclusivo, por eso sumamos 1
  return ThreadLocalRandom.current().nextInt(minimo, maximo + 1);
}

La función nextInt devuelve un número en un rango pero excluye al máximo, por eso es que le sumamos 1. De esta manera obtendremos un número que esté entre mínimo y máximo, incluyendo a ambos.

Uso de la función

Puede ser llamada de manera estática desde la clase Main, o declarada como no estática en una clase. Como sea, aquí hay un fragmento de código que demuestra su uso básico:

import java.util.concurrent.ThreadLocalRandom;

class Main {
	public static void main(String[] args) {
		for (int x = 1; x <= 5; x++) {
			System.out.printf("Número aleatorio entre 2, 50: %d\n", numeroAleatorioEnRango(2, 50));
			System.out.printf("Número aleatorio entre 100, 200: %d\n", numeroAleatorioEnRango(100, 200));
			System.out.printf("Número aleatorio entre 1, 5: %d\n", numeroAleatorioEnRango(1, 5));
			System.out.printf("Número aleatorio entre 1500, 2000: %d\n", numeroAleatorioEnRango(1500, 2000));
			System.out.printf("Número aleatorio entre 1, 5268: %d\n", numeroAleatorioEnRango(1, 5268));
			System.out.printf("Número aleatorio entre 20, 55: %d\n", numeroAleatorioEnRango(20, 55));
			System.out.printf("Número aleatorio entre 17, 86: %d\n", numeroAleatorioEnRango(17, 86));
		}
	}

	public static int numeroAleatorioEnRango(int minimo, int maximo) {
		// nextInt regresa en rango pero con límite superior exclusivo, por eso sumamos 1
		return ThreadLocalRandom.current().nextInt(minimo, maximo + 1);
	}
}

En el ejemplo hacemos un ciclo for y dentro de él imprimimos muchos números aleatorios. La salida varía siempre, por lo que se concluye en que la función sirve para su propósito.

Te invito a ver más sobre Java aquí.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *