Inicio » Blog » Generador de números aleatorios para C#

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étodo random.Next(min, max) no incluye el número max, 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í.

Deja un comentario

Scroll al inicio