# rand

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

Generates a pseudorandom number. A more secure version of this function is available, see rand_s.

## Syntax

``````int rand( void );
``````

## Return Value

`rand` returns a pseudorandom number, as described above. There is no error return.

## Remarks

The `rand` function returns a pseudorandom integer in the range 0 to `RAND_MAX` (32767). Use the srand function to seed the pseudorandom-number generator before calling `rand`.

## Requirements

`rand` <stdlib.h>

For additional compatibility information, see Compatibility in the Introduction.

## Example

``````// crt_rand.c
// This program seeds the random-number generator
// with the time, then exercises the rand function.
//

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void SimpleRandDemo( int n )
{
// Print n random numbers.
int i;
for( i = 0; i < n; i++ )
printf( "  %6d\n", rand() );
}

void RangedRandDemo( int range_min, int range_max, int n )
{
// Generate random numbers in the half-closed interval
// [range_min, range_max). In other words,
// range_min <= random number < range_max
int i;
for ( i = 0; i < n; i++ )
{
int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min)
+ range_min;
printf( "  %6d\n", u);
}
}

int main( void )
{
// Seed the random-number generator with the current time so that
// the numbers will be different every time we run.
srand( (unsigned)time( NULL ) );

SimpleRandDemo( 10 );
printf("\n");
RangedRandDemo( -100, 100, 10 );
}
``````
``````22036
18330
11651
27464
18093
3284
11785
14686
11447
11285

74
48
27
65
96
64
-5
-42
-55
66
``````

## .NET Framework Equivalent

System::Random Class