Tutorial donde mostramos cómo generar números aleatorios (random) desde una aplicación desarrollada con Microsoft Visual Basic .Net de Microsoft Visual Studio .Net. Mostramos cómo generar números aleatorios siempre distintos en VB.NET.

Cómo generar números aleatorios (random) en Visual Basic .NET

Visual Basic .Net permite el empleo de la antigua instrucción Randomize y de la función Rnd con el objeto de mantener la compatibilidad con versiones anteriores, pero los diseñadores profesionales de .NET deberán utilizar la clase System.Random. Con esta clase se podrá configurar la semilla para la generación del número aleatorio utilizando el método constructor de esta clase:

Dim numeroAleatorio As New Random()

El argumento de la función anterior, de añadirlo, debe ser un entero de 32 bits:

Dim numeroAleatorio As New Random(1234)

Si especificamos un número en el argumento se generará un solo número aleatorio con:

Dim numeroAleatorio As New Random(1234)
numeroAleatorio.Next

En cambio, si no especificamos argumento, se generará una secuencia de números aleatorios (uno cada vez que se llame a «numeroAleatorio.Next») distintos hasta completar la secuencia de números para la semilla actual:

Dim numeroAleatorio As New Random()
numeroAleatorio.Next

Con la clase anterior, un ejemplo de uso para mostrar los números aleatorios generados en un cuadro de texto en VB .Net podría ser:

Si queremos que el valor devuelto (número aleatorio) se encuentre en el rango deseado podremos usar el siguiente ejemplo que obtendrá valores aleatorios entre 100 y 1000:

Dim numAleatorio As New Random()
Dim valorAleatorio As Integer = numeroAleatorio.Next(100, 1000)

Si queremos obtener un número aleatorio en coma flotante (double) usaremos la función NextDouble:

Dim numAleatorio As New Random()
Dim valorAleatorio As Double = numeroAleatorio.NextDouble

Si queremos rellenar una matriz de Bytes con números aleatorios podremos usar el método NextBytes. Un ejemplo para obtener una matriz de 1000 valores aleatorios:

Dim numAleatorio As New Random()
Dim buffer(1000) As Byte
numAleatorio.NextBytes(buffer)

Cómo generar números aleatorios (random) en Visual Basic .NET siempre distintos cada vez que se ejecute la aplicación

En el caso anterior, siempre que se pase de un determinado número de semilla se obtendrá la misma secuencia de números aleatorios. Para obtener una secuencia de números aleatorios distintos cada vez que se ejecute la aplicación, se deberá hacer que la semilla dependa de la hora actual del equipo. En Visual Basic 6 se utilizaba la siguiente instrucción:

Randomize Timer

Para el caso de Visual Basic .NET se utilizará:

Dim numeroAleatorio As New Random(CInt(Date.Now.Ticks And Integer.MaxValue))

Un ejemplo de generación de números aleatorios siempre distintos en VB .NET:

AjpdSoft Números Aleatorios VB.NET

A continuación mostramos el código fuente completo de la aplicación de ejemplo para generar números aleatorios AjpdSoft Números Aleatorios VB.NET:

AjpdSoft Números Aleatorios VB.NET

Su descarga gratuita: