Generador de números aleatorios para C#
¡Hola! Hoy vamos a charlar sobre cómo hacer un generador de números aleatorios en C#. Es súper útil para cosas como juegos, simulaciones o hasta para inventarte una lotería casera.
¿Qué hace este programa?
Básicamente, vamos a crear un programita que te pide tres cosas:
- Un número inicial (el menor del rango).
- Un número final (el mayor del rango).
- Cuántas veces quieres que genere un número aleatorio.
Luego, te va a tirar números al azar dentro de ese rango, tantas veces como le digas. Fácil, ¿no? Usaremos la clase Random
de C#, que es como una maquinita mágica para sacar números al azar.
Paso 1: Preparar el terreno
Primero, necesitas un lugar donde escribir el código. Si tienes Visual Studio, genial; si no, cualquier editor como Visual Studio Code con .NET instalado te sirve. Crea un proyecto nuevo de tipo «Consola» (es el más simple para practicar).
Al inicio de tu archivo Program.cs
, ponemos esta línea para tener acceso a las herramientas básicas:
using System;
Paso 2: Hacer una función para generar los números
Vamos a crear una función que haga el trabajo pesado. La llamaremos GenerarNumerosAleatorios
y le vamos a decir: «Oye, genera números entre este rango y hazlo tantas veces como yo quiera». Aquí te dejo el código con comentarios para que lo entiendas:
public static void GenerarNumerosAleatorios(int numeroInicial, int numeroFinal, int cantidadRepeticiones) { // Creamos nuestra "maquinita" de números aleatorios Random random = new Random(); // Repetimos el proceso según las repeticiones que nos pidan for (int i = 0; i < cantidadRepeticiones; i++) { // Generamos un número entre numeroInicial y numeroFinal (el +1 es porque Next no incluye el máximo) int numeroGenerado = random.Next(numeroInicial, numeroFinal + 1); Console.WriteLine($"Número {i + 1}: {numeroGenerado}"); } }
Paso 3: Pedirle datos al usuario
Ahora, en el Main
(que es como el cerebro del programa), vamos a preguntarle al usuario qué quiere. Vamos a hacerlo interactivo y con mensajes claros:
static void Main(string[] args) { Console.WriteLine("¡Hola! Vamos a generar algunos números al azar."); // Pedimos el número inicial Console.WriteLine("Dime el número inicial (entre 1 y 999): "); int numeroInicial = int.Parse(Console.ReadLine()); // Pedimos el número final Console.WriteLine("Ahora el número final (entre 1 y 999, mayor o igual al inicial): "); int numeroFinal = int.Parse(Console.ReadLine()); // Pedimos cuántas veces quiere números Console.WriteLine("¿Cuántos números quieres generar?"); int cantidadRepeticiones = int.Parse(Console.ReadLine()); // Llamamos a nuestra función GenerarNumerosAleatorios(numeroInicial, numeroFinal, cantidadRepeticiones); // Esto es para que la consola no se cierre de inmediato Console.WriteLine("\n¡Listo! Presiona cualquier tecla para salir."); Console.ReadKey(); }
Paso 4: Agregar validaciones (¡que no se cuelen errores!)
No queremos que el usuario meta la pata y rompa el programa, así que vamos a agregar unas reglas. Si algo sale mal, le avisamos y paramos. Aquí va el código completo con validaciones:
using System; class Program { static void Main(string[] args) { Console.WriteLine("¡Hola! Vamos a generar algunos números al azar."); // Pedimos los datos Console.WriteLine("Dime el número inicial (entre 1 y 999): "); int numeroInicial = int.Parse(Console.ReadLine()); Console.WriteLine("Ahora el número final (entre 1 y 999, mayor o igual al inicial): "); int numeroFinal = int.Parse(Console.ReadLine()); Console.WriteLine("¿Cuántos números quieres generar?"); int cantidadRepeticiones = int.Parse(Console.ReadLine()); // Validaciones if (numeroInicial < 1 || numeroInicial > 999 || numeroFinal < 1 || numeroFinal > 999) { Console.WriteLine("Oye, los números deben estar entre 1 y 999. ¡Intenta de nuevo!"); return; // Salimos si hay error } if (numeroInicial > numeroFinal) { Console.WriteLine("¡Espera! El número inicial no puede ser mayor que el final. Corrige eso."); return; // Salimos si hay error } if (cantidadRepeticiones < 1) { Console.WriteLine("Vamos, dame al menos 1 repetición para que tenga sentido."); return; // Salimos si hay error } // Si todo está bien, generamos los números GenerarNumerosAleatorios(numeroInicial, numeroFinal, cantidadRepeticiones); Console.WriteLine("\n¡Listo! Presiona cualquier tecla para salir."); Console.ReadKey(); } public static void GenerarNumerosAleatorios(int numeroInicial, int numeroFinal, int cantidadRepeticiones) { Random random = new Random(); for (int i = 0; i < cantidadRepeticiones; i++) { int numeroGenerado = random.Next(numeroInicial, numeroFinal + 1); Console.WriteLine($"Número {i + 1}: {numeroGenerado}"); } } }
¿Qué ves cuando lo corres?
Si pones, por ejemplo:
- Número inicial: 5
- Número final: 10
- Repeticiones: 3
Podrías ver algo como:
¡Hola! Vamos a generar algunos números al azar. Dime el número inicial (entre 1 y 999): 5 Ahora el número final (entre 1 y 999, mayor o igual al inicial): 10 ¿Cuántos números quieres generar? 3 Número 1: 7 Número 2: 5 Número 3: 9 ¡Listo! Presiona cualquier tecla para salir
Cada vez que lo corras, los números serán diferentes porque, bueno, ¡son aleatorios!
Trucos y consejos:
- ¿Por qué el +1 en
Next
?: El métodorandom.Next(min, max)
no incluye el númeromax
, así que le sumamos 1 para que el rango sea inclusivo. - Prueba cosas raras: Ingresa un número inicial mayor al final o un valor negativo y mira cómo el programa te «regaña».
- Hazlo más fancy: Si quieres, puedes guardar los números en una lista y mostrarlos al final, o usarlos para un juego.
Con este código, ya tienes un generador de números aleatorios que es fácil de usar y entender. La clase Random
hace todo el trabajo duro, y con unas pocas líneas, puedes personalizarlo como quieras. ¿Te animas a probarlo con tus propios rangos? . hemos creado una aplicación de form que muestra como ejemplo el funcionamiento de código que vemos explicado que puede descargar desde aquí.