# Generate a Random Float in C#

In this tutorial, we will discuss methods to generate a random float value in C#.

## Generate Random Float Between `0` and `1` With the `Random.NextDouble()` Function in `C#`

Unfortunately, there is no built-in method to generate a random number in C#. So, we have to rely on some user-defined methods to achieve this goal. The `Random.NextDouble()` function is used to generate a random double value between `0` and `1`. We can use this function to generate a random double value between `0` and `1` and then typecast that random value into a float. The following code example shows us how we can generate a random float value between `0` and `1` with the `Random.NextDouble()` function in C#.

``````using System;

namespace random_float
{
class Program
{
static void Main(string[] args)
{
Random rand = new Random();
for(int i = 0; i < 10; i++)
{
float randomFloat = (float)rand.NextDouble();
Console.WriteLine("Random Float = {0}", randomFloat);
}
}
}
}
``````

Output:

``````Random Float = 0.3914659
Random Float = 0.8927528
Random Float = 0.6579643
Random Float = 0.4404075
Random Float = 0.3213561
Random Float = 0.3399849
Random Float = 0.04562188
Random Float = 0.1881405
Random Float = 0.7638124
Random Float = 0.1645804
``````

We generated a random float value between `0` and `1` with the `Random.NextDouble()` function in C#. We first generated a random double value between `0` and `1` and then converted that double value into a float value using typecasting.

## Generate Random Float Without a Range With the `Random.NextDouble()` Function in `C#`

We can also generate a random float value without setting the range between `0` and `1` with the `Random.NextDouble()` function in C#. The only range in this method is the range of values that the float data type can hold in it. We can use `float.MaxValue` and `float.MinValue` to specify the maximum and minimum values that the float data type can store. The following code example shows us how to generate a random float value without specifying a range with the `Random.NextDouble()` function in C#.

``````using System;

namespace random_float
{
class Program
{
static void Main(string[] args)
{
Random rand = new Random();
double range = (double)float.MaxValue - (double)float.MinValue;
for(int i = 0; i < 10; i++)
{
double sample = rand.NextDouble();
double scaled = (sample * range) + float.MinValue;
float f = (float)scaled;
Console.WriteLine(f);

}
}
}
}
``````

Output:

``````1.500952E+38
-1.930891E+38
2.951987E+38
-1.205054E+38
-6.225039E+37
3.843309E+36
-1.241292E+38
1.360907E+38
1.769061E+38
-1.577001E+38
``````

We generated a random float value without a range with the `Random.NextDouble()` function in C#. We initialized the double variable `range` with `float.MaxValue - float.MinValue` and then typecasting it into double data type. This ensures that the random value range stays within the range of values that a float data type can handle. We calculated the random value by multiplying the value returned by the `Random.NextDouble()` function with the `range` and adding `float.MinValue` to the result. In the end, we converted the random value into float data type with typecasting.

## Generate Random Float Within a Specific Range With the `Random.NextDouble()` Function in `C#`

We can also generate a random value within a specific range with the `Random.NextDouble()` function in C#. For example, suppose we have to generate a random float value between `1` and `10`. In that case, we can generate a random value between `0` and `1` with the `Random.NextDouble()` function, multiply it with the range and then add the minimum value to it. The following code example shows us how to generate a random number between a specified range with the `Random.NextDouble()` function in C#.

``````using System;

namespace random_float
{
class Program
{
static void Main(string[] args)
{
Random rand = new Random();
double min = 1;
double max = 10;
double range = max - min;
for (int i = 0; i < 10; i++)
{
double sample = rand.NextDouble();
double scaled = (sample * range) + min;
float f = (float)scaled;
Console.WriteLine(f);

}
}
}
}
``````

Output:

``````3.468961
8.04868
2.210197
8.150612
4.217263
5.328617
4.730082
8.462176
2.679844
8.609394
``````

We generated a random float value between `1` and `10` with the `Random.NextDouble()` function in C#. We specified the `min` and `max` values and calculated the range with `range = max - min`. We calculated the random value by multiplying the value returned by the `Random.NextDouble()` function with the `range` and adding `min` to the result. In the end, we converted the random value into float data type with typecasting.

## Generate Random Float With the `Random.NextBytes()` Function in `C#`

We can also generate a random float value with the `Random.NextBytes()` function in C#. The `Random.NextBytes(byte[])` function is used to fill the `byte[]` array with random byte values. We can generate random float values by converting the bytes stored in `byte[]` to float datatype. The following code example shows us how we can generate a random float value with the `Random.NextBytes()` function in C#.

``````using System;

namespace random_float
{
class Program
{
static void Main(string[] args)
{
Random rand = new Random();
for (int i = 0; i < 10; i++)
{
var array = new byte[4];
rand.NextBytes(array);
float randomFloat = BitConverter.ToSingle(array, 0);
Console.WriteLine("Random Value = {0}", randomFloat);

}
}
}
}
``````

Output:

``````Random Value = 2.021232E-20
Random Value = -121623
Random Value = -1.564382E+38
Random Value = 1.146448E-14
Random Value = -6.874067E-22
Random Value = -1.226989E+31
Random Value = -3.01435E+08
Random Value = -8.568415E+30
Random Value = -1.454825E+27
Random Value = 3.801608E-26
``````

We generated a random float value with the `Random.NextBytes()` function in C#. We filled the `array` array with random byte values with the `Random.NextBytes()` function. We converted the byte values to float with the `BitConverter.ToSingle()` function.

Write for us
DelftStack articles are written by software geeks like you. If you also would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

## Related Article - C# Float

• Convert a String to Float in C#
• Convert Int to Float in C#
• Float vs Double vs Decimal in C#
• Convert Float to Int in C#