Export (0) Print
Expand All

Random.Next Method

Returns a random number.

Overload List

Returns a nonnegative random number.

Supported by the .NET Compact Framework.

[Visual Basic] Overloads Public Overridable Function Next() As Integer
[C#] public virtual int Next();
[C++] public: virtual int Next();
[JScript] public function Next() : int;

Returns a nonnegative random number less than the specified maximum.

Supported by the .NET Compact Framework.

[Visual Basic] Overloads Public Overridable Function Next(Integer) As Integer
[C#] public virtual int Next(int);
[C++] public: virtual int Next(int);
[JScript] public function Next(int) : int;

Returns a random number within a specified range.

Supported by the .NET Compact Framework.

[Visual Basic] Overloads Public Overridable Function Next(Integer, Integer) As Integer
[C#] public virtual int Next(int, int);
[C++] public: virtual int Next(int, int);
[JScript] public function Next(int, int) : int;

Example

[Visual Basic, C#, C++] The following code example generates random Int32 values with various overloads of the Next method.

[Visual Basic, C#, C++] Note   This example shows how to use one of the overloaded versions of Next. For other examples that might be available, see the individual overload topics.
[Visual Basic] 
' Example of the Random.Next( ) methods.
Imports System
Imports Microsoft.VisualBasic

Module  RandomNextDemo

    ' Generate random numbers with no bounds specified.
    Sub NoBoundsRandoms( seed As Integer )

        Console.WriteLine( vbCrLf & _
            "Random object, seed = {0}, no bounds:", seed )
        Dim randObj As New Random( seed )
            
        ' Generate six random integers from 0 to int.MaxValue.
        Dim j As Integer
        For j = 0 To 5
            Console.Write( "{0,11} ", randObj.Next( ) )
        Next j
        Console.WriteLine( )
    End Sub 
        
    ' Generate random numbers with an upper bound specified.
    Sub UpperBoundRandoms( seed As Integer, upper As Integer )

        Console.WriteLine( vbCrLf & _
            "Random object, seed = {0}, upper bound = {1}:", _
            seed, upper )
        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
            Console.Write( "{0,11} ", randObj.Next( upper ) )
        Next j
        Console.WriteLine( )
    End Sub 
        
    ' Generate random numbers with both bounds specified.
    Sub BothBoundsRandoms( _
        seed As Integer, lower As Integer, upper As Integer )

        Console.WriteLine( vbCrLf & _
            "Random object, seed = {0}, lower = {1}, " & _
            "upper = {2}:", seed, lower, upper )
        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
            Console.Write( "{0,11} ", _
                randObj.Next( lower, upper ) )
        Next j
        Console.WriteLine( )
    End Sub 
        
    Sub Main( )
        Console.WriteLine( _
            "This example of the Random.Next( ) methods" & _ 
            vbCrLf & "generates the following output." & vbCrLf )
        Console.WriteLine( _
            "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." )
            
        NoBoundsRandoms( 234 )

        UpperBoundRandoms( 234, Int32.MaxValue )
        UpperBoundRandoms( 234, 2000000000 )
        UpperBoundRandoms( 234, 200000000 )

        BothBoundsRandoms( 234, 0, Int32.MaxValue )
        BothBoundsRandoms( 234, Int32.MinValue, Int32.MaxValue )
        BothBoundsRandoms( 234, -2000000000, 2000000000 )
        BothBoundsRandoms( 234, -200000000, 200000000 )
        BothBoundsRandoms( 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

[C#] 
// Example of the Random.Next( ) methods.
using System;

public class RandomNextDemo  
{
    // Generate random numbers with no bounds specified.
    static void NoBoundsRandoms( int seed )
    {
        Console.WriteLine( 
            "\nRandom object, seed = {0}, no bounds:", seed );
        Random randObj = new Random( seed );

        // Generate six random integers from 0 to int.MaxValue.
        for( int j = 0; j < 6; j++ )
            Console.Write( "{0,11} ", randObj.Next( ) );
        Console.WriteLine( );
    }

    // Generate random numbers with an upper bound specified.
    static void UpperBoundRandoms( int seed, int upper )
    {
        Console.WriteLine( 
            "\nRandom object, seed = {0}, upper bound = {1}:", 
            seed, upper );
        Random randObj = new Random( seed );

        // Generate six random integers from 0 to the upper bound.
        for( int j = 0; j < 6; j++ )
            Console.Write( "{0,11} ", randObj.Next( upper ) );
        Console.WriteLine( );
    }

    // Generate random numbers with both bounds specified.
    static void BothBoundsRandoms( int seed, int lower, int upper )
    {
        Console.WriteLine( 
            "\nRandom object, seed = {0}, lower = {1}, " +
            "upper = {2}:", seed, lower, upper );
        Random randObj = new Random( seed );

        // Generate six random integers from the lower to 
        // upper bounds.
        for( int j = 0; j < 6; j++ )
            Console.Write( "{0,11} ", 
                randObj.Next( lower, upper) );
        Console.WriteLine( );
    }

    static void Main( )
    {    
        Console.WriteLine(                 
            "This example of the Random.Next( ) methods\n" +
            "generates the following output.\n" );
        Console.WriteLine(                 
            "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." );
        
        NoBoundsRandoms( 234 );

        UpperBoundRandoms( 234, Int32.MaxValue );
        UpperBoundRandoms( 234, 2000000000 );
        UpperBoundRandoms( 234, 200000000 );

        BothBoundsRandoms( 234, 0, Int32.MaxValue );
        BothBoundsRandoms( 234, Int32.MinValue, Int32.MaxValue );
        BothBoundsRandoms( 234, -2000000000, 2000000000 );
        BothBoundsRandoms( 234, -200000000, 200000000 );
        BothBoundsRandoms( 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
*/

[C++] 
// Example of the Random::Next( ) methods.
#using <mscorlib.dll>
using namespace System;

// Generate random numbers with no bounds specified.
void NoBoundsRandoms( int seed )
{
    Console::WriteLine( 
        S"\nRandom object, seed = {0}, no bounds:", 
        __box( seed ) );
    Random* randObj = new Random( seed );

    // Generate six random integers from 0 to int.MaxValue.
    for( int j = 0; j < 6; j++ )
        Console::Write( "{0,11} ", __box( randObj->Next( ) ) );
    Console::WriteLine( );
}

// Generate random numbers with an upper bound specified.
void UpperBoundRandoms( int seed, int upper )
{
    Console::WriteLine( 
        S"\nRandom object, seed = {0}, upper bound = {1}:", 
        __box( seed ), __box( upper ) );
    Random* randObj = new Random( seed );

    // Generate six random integers from 0 to the upper bound.
    for( int j = 0; j < 6; j++ )
        Console::Write( "{0,11} ", 
            __box( randObj->Next( upper ) ) );
    Console::WriteLine( );
}

// Generate random numbers with both bounds specified.
void BothBoundsRandoms( int seed, int lower, int upper )
{
    Console::WriteLine( 
        S"\nRandom object, seed = {0}, lower = {1}, upper = {2}:", 
        __box( seed ), __box( lower ), __box( upper ) );
    Random* randObj = new Random( seed );

    // Generate six random integers from the lower to 
    // upper bounds.
    for( int j = 0; j < 6; j++ )
        Console::Write( "{0,11} ", 
            __box( randObj->Next( lower, upper ) ) );
    Console::WriteLine( );
}

void main( )
{    
    Console::WriteLine(                 
        S"This example of the Random::Next( ) methods\n" 
        S"generates the following output.\n" );
    Console::WriteLine(                 
        S"Create Random objects all with the same seed and " 
        S"generate\nsequences of numbers with different " 
        S"bounds. Note the effect\nthat the various " 
        S"combinations of bounds have on the sequences." );
    
    NoBoundsRandoms( 234 );

    UpperBoundRandoms( 234, Int32::MaxValue );
    UpperBoundRandoms( 234, 2000000000 );
    UpperBoundRandoms( 234, 200000000 );

    BothBoundsRandoms( 234, 0, Int32::MaxValue );
    BothBoundsRandoms( 234, Int32::MinValue, Int32::MaxValue );
    BothBoundsRandoms( 234, -2000000000, 2000000000 );
    BothBoundsRandoms( 234, -200000000, 200000000 );
    BothBoundsRandoms( 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
*/

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

See Also

Random Class | Random Members | System Namespace

Show:
© 2014 Microsoft