SDL_rand_r - Generate a pseudo-random number less than n for positive n
Contents
Availability
This function is available since SDL 3.2.0.
Description
The method used is faster and of better quality than rand()%n . Odds are roughly 99.9% even for n = 1
million. Evenness is better for smaller n, and much worse as n gets bigger.
Example: to simulate a d6 use SDL_rand_r(state,6)+1 The +1 converts 0..5 to 1..6
If you want to generate a pseudo-random number in the full range of
Sint32 , you should use: ( Sint32 ) SDL_rand_bits_r (state)
There are no guarantees as to the quality of the random sequence produced, and this should not be used
for security (cryptography, passwords) or where money is on the line (loot-boxes, casinos). There are
many random number libraries available with different characteristics and you should pick one of those to
meet any serious needs.
Function Parameters
state a pointer to the current random number state, this may not be NULL.
n the number of possible outcomes. n must be positive.
Header File
Defined in SDL3/SDL_stdinc.h
Name
SDL_rand_r - Generate a pseudo-random number less than n for positive n
Return Value
( Sint32 ) Returns a random value in the range of [0 .. n-1].
See Also
•(3), SDL_rand(3), •(3), SDL_rand_bits_r(3), •(3), SDL_randf_r(3) Simple Directmedia Layer SDL 3.2.10 SDL_rand_r(3)
Synopsis
#include"SDL3/SDL.h"Sint32SDL_rand_r(Uint64*state,Sint32n);
Thread Safety
This function is thread-safe, as long as the state pointer isn't shared between threads.
