Números aleatorios en C#
La generación de números aleatoreos es una de las prácticas más importantes en cualquier lenguaje de programación, sobre todo cuando deseamos desarrollar juegos, por ejemplo. Para usar números aleatorios en C# podemos utilizar la clase Random del namespace System, de la siguiente manera:
Random objeto = new Random(); int numero = objeto.Next();
El método Next de la clase Random genera y devuelve un número aleatorio entre 0 y la constante Int32.MaxValue (2,147,483,647). El número es generado después de (como decÃa mi profesora de matemáticas) complejos procesos matemáticos, y como en casi todos los lenguajes necesitan de una semilla (seed) para ser generados, que por defecto es la hora del sistema.
Aún asÃ, muchas veces necesitamos que el número sea generado en un rango especÃfico de valores. Por ejemplo, para una aplicación que simule el lanzamiento de un dado de seis caras necesitamos generar números entre 1 y 6. Para lograr esto, el método Next puede recibir además un entero que indica el rango máximo del número aleatorio. Por ejemplo, el código:
Random objeto = new Random(); int numero = objeto.Next(6);
generarÃa un número aleatorio entre 0 y 7 (pero no 6), es decir, seis posibles números. Pero, si desearamos algún rango más exacto, podrÃamos hacer algo como:
Random objeto = new Random(); int numero = objeto.Next(1, 7);
lo que generarÃa números entre 1 y 7 (pero no 7), de nuevo seis números posibles.
Ejemplo completo...
En el siguiente ejemplo se utilizará la clase Random para generar una serie de números aleatorios cada vez que se presiona un botón:

El código lo pongo para su descarga abajo, ya que lo hice con Gtk# usando MonoDevelop, y serÃa engorroso poner todo el código. Asà que solo pondré la parte del código que nos interesa:
private Random obj = new Random();
//Método ejecutado al presionar el botón
protected virtual void generar_Click (object sender, System.EventArgs e)
{
etiqueta.Text = "";
for(int i = 0; i < 4 ; i++)
{
for(int j = 0; j < 4 ; j++)
etiqueta.Text += obj.Next(1, 10) +"\t\t";
etiqueta.Text += "\n\n";
}
}
Enlaces y descargas
- Descargar código fuente del ejemplo (usando Gtk#)
- Descargar proyecto similar en inglés (usando Windows Forms)
- Aplicaciones con GUI en .NET: ¿Gtk# o Windows Forms?










Obelich dice:
Diciembre 4th, 2008 a las 2:38 pm
Hola como estas un saluldo, estoy interesado en formar una nueva seccion en Opensuse Latino referente a Mono Developer, con los lenguajes que este soporte C, C++, C#, GTK#, ASP.NET, etc.. y la verdad yo estoy en cascaron referente a programacion, y ando pidiendo tu apoyo para que este proyecto de apoyo a MonoDeveloper sea una realidad, ando buscando personas que esten interesadas en compartir sus conocimientos de estos lenguajes orientados a Gnu/Linux con el entorno de programacion de MonoDeveloper, si te interesa apoyar a este proyecto o conoces gente que pudiera estar interesada pasales mi correo o mandame un correo mi E-Mail es obelich@gmail.com y en el portal de opensuse latino tambien e puesto la nota sobre esta solicitud y tambien en algunos foros de programacion
http://opensuseltn.org