Random.Next Method (Int32)
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Returns a nonnegative random number less than the specified maximum.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Overridable Function Next ( _
maxValue As Integer _
) As Integer
public virtual int Next(
int maxValue
)
Parameters
- maxValue
Type: System.Int32
The exclusive upper bound of the random number to be generated. maxValue must be greater than or equal to zero.
Return Value
Type: System.Int32
A 32-bit signed integer greater than or equal to zero, and less than maxValue; that is, the range of return values ordinarily includes zero but not maxValue. However, if maxValue equals zero, maxValue is returned.
Examples
The following code example generates random integers with various overloads of the Next method.
' Example of the Random.Next( ) methods.
Module Example
' Generate random numbers with no bounds specified.
Sub NoBoundsRandoms(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal seed As Integer)
outputBlock.Text &= String.Format(vbCrLf & _
"Random object, seed = {0}, no bounds:", seed) & vbCrLf
Dim randObj As New Random(seed)
' Generate six random integers from 0 to int.MaxValue.
Dim j As Integer
For j = 0 To 5
outputBlock.Text &= String.Format("{0,11} ", randObj.Next())
Next j
outputBlock.Text &= vbCrLf
End Sub
' Generate random numbers with an upper bound specified.
Sub UpperBoundRandoms(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal seed As Integer, ByVal upper As Integer)
outputBlock.Text &= String.Format(vbCrLf & _
"Random object, seed = {0}, upper bound = {1}:", _
seed, upper) & vbCrLf
Dim randObj As New Random(seed)
' Generate six random integers from 0 to the upper bound.
Dim j As Integer
For j = 0 To 5
outputBlock.Text &= String.Format("{0,11} ", randObj.Next(upper))
Next j
outputBlock.Text &= vbCrLf
End Sub
' Generate random numbers with both bounds specified.
Sub BothBoundsRandoms(ByVal outputBlock As System.Windows.Controls.TextBlock, _
ByVal seed As Integer, ByVal lower As Integer, ByVal upper As Integer)
outputBlock.Text &= String.Format(vbCrLf & _
"Random object, seed = {0}, lower = {1}, " & _
"upper = {2}:", seed, lower, upper) & vbCrLf
Dim randObj As New Random(seed)
' Generate six random integers from the lower to
' upper bounds.
Dim j As Integer
For j = 0 To 5
outputBlock.Text &= String.Format("{0,11} ", _
randObj.Next(lower, upper))
Next j
outputBlock.Text &= vbCrLf
End Sub
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
outputBlock.Text &= String.Format( _
"This example of the Random.Next( ) methods" & _
vbCrLf & "generates the following output." & vbCrLf) & vbCrLf
outputBlock.Text &= String.Format( _
"Create Random objects all with the same seed " & _
"and generate" & vbCrLf & "sequences of numbers " & _
"with different bounds. Note the effect " & vbCrLf & _
"that the various combinations " & _
"of bounds have on the sequences.") & vbCrLf
NoBoundsRandoms(outputBlock, 234)
UpperBoundRandoms(outputBlock, 234, Int32.MaxValue)
UpperBoundRandoms(outputBlock, 234, 2000000000)
UpperBoundRandoms(outputBlock, 234, 200000000)
BothBoundsRandoms(outputBlock, 234, 0, Int32.MaxValue)
BothBoundsRandoms(outputBlock, 234, Int32.MinValue, Int32.MaxValue)
BothBoundsRandoms(outputBlock, 234, -2000000000, 2000000000)
BothBoundsRandoms(outputBlock, 234, -200000000, 200000000)
BothBoundsRandoms(outputBlock, 234, -2000, 2000)
End Sub
End Module
' This example of the Random.Next( ) methods
' generates the following output.
'
' Create Random objects all with the same seed and generate
' sequences of numbers with different bounds. Note the effect
' that the various combinations of bounds have on the sequences.
'
' Random object, seed = 234, no bounds:
' 2091148258 1024955023 711273344 1081917183 1833298756 109460588
'
' Random object, seed = 234, upper bound = 2147483647:
' 2091148258 1024955023 711273344 1081917183 1833298756 109460588
'
' Random object, seed = 234, upper bound = 2000000000:
' 1947533580 954563751 662424922 1007613896 1707392518 101943116
'
' Random object, seed = 234, upper bound = 200000000:
' 194753358 95456375 66242492 100761389 170739251 10194311
'
' Random object, seed = 234, lower = 0, upper = 2147483647:
' 2091148258 1024955023 711273344 1081917183 1833298756 109460588
'
' Random object, seed = 234, lower = -2147483648, upper = 2147483647:
' 2034812868 -97573602 -724936960 16350718 1519113864 -1928562472
'
' Random object, seed = 234, lower = -2000000000, upper = 2000000000:
' 1895067160 -90872498 -675150156 15227793 1414785036 -1796113767
'
' Random object, seed = 234, lower = -200000000, upper = 200000000:
' 189506716 -9087250 -67515016 1522779 141478503 -179611377
'
' Random object, seed = 234, lower = -2000, upper = 2000:
' 1895 -91 -676 15 1414 -1797
// Example of the Random.Next( ) methods.
using System;
public class Example
{
// Generate random numbers with no bounds specified.
static void NoBoundsRandoms(System.Windows.Controls.TextBlock outputBlock, int seed)
{
outputBlock.Text += String.Format(
"\nRandom object, seed = {0}, no bounds:", seed) + "\n";
Random randObj = new Random(seed);
// Generate six random integers from 0 to int.MaxValue.
for (int j = 0; j < 6; j++)
outputBlock.Text += String.Format("{0,11} ", randObj.Next());
outputBlock.Text += "\n";
}
// Generate random numbers with an upper bound specified.
static void UpperBoundRandoms(System.Windows.Controls.TextBlock outputBlock, int seed, int upper)
{
outputBlock.Text += String.Format(
"\nRandom object, seed = {0}, upper bound = {1}:",
seed, upper) + "\n";
Random randObj = new Random(seed);
// Generate six random integers from 0 to the upper bound.
for (int j = 0; j < 6; j++)
outputBlock.Text += String.Format("{0,11} ", randObj.Next(upper));
outputBlock.Text += "\n";
}
// Generate random numbers with both bounds specified.
static void BothBoundsRandoms(System.Windows.Controls.TextBlock outputBlock, int seed, int lower, int upper)
{
outputBlock.Text += String.Format(
"\nRandom object, seed = {0}, lower = {1}, " +
"upper = {2}:", seed, lower, upper) + "\n";
Random randObj = new Random(seed);
// Generate six random integers from the lower to
// upper bounds.
for (int j = 0; j < 6; j++)
outputBlock.Text += String.Format("{0,11} ",
randObj.Next(lower, upper));
outputBlock.Text += "\n";
}
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
outputBlock.Text += String.Format(
"This example of the Random.Next( ) methods\n" +
"generates the following output.\n") + "\n";
outputBlock.Text += String.Format(
"Create Random objects all with the same seed and " +
"generate\nsequences of numbers with different " +
"bounds. Note the effect\nthat the various " +
"combinations of bounds have on the sequences.") + "\n";
NoBoundsRandoms(outputBlock, 234);
UpperBoundRandoms(outputBlock, 234, Int32.MaxValue);
UpperBoundRandoms(outputBlock, 234, 2000000000);
UpperBoundRandoms(outputBlock, 234, 200000000);
BothBoundsRandoms(outputBlock, 234, 0, Int32.MaxValue);
BothBoundsRandoms(outputBlock, 234, Int32.MinValue, Int32.MaxValue);
BothBoundsRandoms(outputBlock, 234, -2000000000, 2000000000);
BothBoundsRandoms(outputBlock, 234, -200000000, 200000000);
BothBoundsRandoms(outputBlock, 234, -2000, 2000);
}
}
/*
This example of the Random.Next( ) methods
generates the following output.
Create Random objects all with the same seed and generate
sequences of numbers with different bounds. Note the effect
that the various combinations of bounds have on the sequences.
Random object, seed = 234, no bounds:
2091148258 1024955023 711273344 1081917183 1833298756 109460588
Random object, seed = 234, upper bound = 2147483647:
2091148258 1024955023 711273344 1081917183 1833298756 109460588
Random object, seed = 234, upper bound = 2000000000:
1947533580 954563751 662424922 1007613896 1707392518 101943116
Random object, seed = 234, upper bound = 200000000:
194753358 95456375 66242492 100761389 170739251 10194311
Random object, seed = 234, lower = 0, upper = 2147483647:
2091148258 1024955023 711273344 1081917183 1833298756 109460588
Random object, seed = 234, lower = -2147483648, upper = 2147483647:
2034812868 -97573602 -724936960 16350718 1519113864 -1928562472
Random object, seed = 234, lower = -2000000000, upper = 2000000000:
1895067160 -90872498 -675150156 15227793 1414785036 -1796113767
Random object, seed = 234, lower = -200000000, upper = 200000000:
189506716 -9087250 -67515016 1522779 141478503 -179611377
Random object, seed = 234, lower = -2000, upper = 2000:
1895 -91 -676 15 1414 -1797
*/
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.