Respuestas:
Puedes probar
Random r = new Random();
int rInt = r.Next(0, 100); //for ints
int range = 100;
double rDouble = r.NextDouble()* range; //for doubles
Mira esto
Random Class , Random.Next Method (Int32, Int32) y Random.NextDouble Method
Random()
usa una semilla dependiente del tiempo, pero escribir eso explícitamente es mejor para facilitar la lectura.
Intenta debajo del código.
Random rnd = new Random();
int month = rnd.Next(1, 13); // creates a number between 1 and 12
int dice = rnd.Next(1, 7); // creates a number between 1 and 6
int card = rnd.Next(52); // creates a number between 0 and 51
Algo como:
var rnd = new Random(DateTime.Now.Millisecond);
int ticks = rnd.Next(0, 3000);
DateTime.Now.Millisecond
?
Random
ya está sembrado con un valor del sistema, y Millisecond
es solo un número entre 0 y 999. Si este par de líneas siempre estuvieran juntas en el código, solo habría 1000 valores posibles rnd.Next
debido a que la semilla se reinicia cada vez. Misma semilla, mismo número aleatorio. Dejaría la semilla manual fuera.
Environment.TickCount
.
Utilizar:
Random r = new Random();
int x= r.Next(10);//Max range
Para futuros lectores, si desea un número aleatorio en un rango, use el siguiente código:
public double GetRandomNumberInRange(double minNumber, double maxNumber)
{
return new Random().NextDouble() * (maxNumber - minNumber) + minNumber;
}
return new Random().NextDouble() * (maxNumber - minNumber) + minNumber;
Aparte de la clase aleatoria , que genera enteros y dobles, considere:
Pregunta de desbordamiento de pila Generación de valores restringidos (pseudo) aleatorios de (U) Int64 y Decimal
Aquí está la versión actualizada de la respuesta Darrelk . Se implementa utilizando métodos de extensión C # . No asigna memoria ( nuevo Random () ) cada vez que se llama a este método.
public static class RandomExtensionMethods
{
public static double NextDoubleRange(this System.Random random, double minNumber, double maxNumber)
{
return random.NextDouble() * (maxNumber - minNumber) + minNumber;
}
}
Uso (asegúrese de importar el espacio de nombres que contiene la clase RandomExtensionMethods):
var random = new System.Random();
double rx = random.NextDoubleRange(0.0, 1.0);
double ry = random.NextDoubleRange(0.0f, 1.0f);
double vx = random.NextDoubleRange(-0.005f, 0.005f);
double vy = random.NextDoubleRange(-0.005f, 0.005f);
double rDouble = (r.NextDouble()*2)-1.0;