<!-- ##### SECTION Title ##### -->
Random Numbers

<!-- ##### SECTION Short_Description ##### -->
pseudo random number generator.

<!-- ##### SECTION Long_Description ##### -->
<para>
The following functions allow you to use a portable, fast and good
pseudo random number generator (PRNG). It uses the Mersenne Twister
PRNG, which was originally developed by Makoto Matsumoto and Takuji
Nishimura. Further information can be found at <ulink
url="http://www.math.keio.ac.jp/~matumoto/emt.html"
>www.math.keio.ac.jp/~matumoto/emt.html</ulink>.
</para>

<para>
If you just need a random number, you simply call the g_random_*
functions, which will create a globally used #GRand and use the
according g_rand_* function internally. Whenever you need a stream of
reproducible random numbers, you better create a #GRand yourself and
use the g_rand_* functions directly, which will also be slightly
faster. Initializing a GRand with a certain seed will produce exactly
the same series of random numbers on all platforms. This can thus be
used as a seed for e.g. games.
</para>

<para>
The g_rand*_range functions will return high quality equally
distributed random numbers, whereas for example the
<literal>(g_random_int()%%max)</literal> approach often doesn't
yield equally distributed numbers.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### STRUCT GRand ##### -->
<para>
The #GRand struct is an opaque data structure. It should only be
accessed through the g_rand_* functions.
</para>


<!-- ##### FUNCTION g_rand_new_with_seed ##### -->


@seed: 
@Returns: 


<!-- ##### FUNCTION g_rand_new ##### -->


@Returns: 


<!-- ##### FUNCTION g_rand_free ##### -->


@rand: 


<!-- ##### FUNCTION g_rand_set_seed ##### -->


@rand: 
@seed: 


<!-- ##### MACRO g_rand_boolean ##### -->
<para>
Return a random #gboolean from @rand. This corresponds to a unbiased
coin toss.
</para>

@rand: a #GRand.
@Returns: a random #gboolean.


<!-- ##### FUNCTION g_rand_int ##### -->


@rand: 
@Returns: 


<!-- ##### FUNCTION g_rand_int_range ##### -->


@rand: 
@begin: 
@end: 
@Returns: 
<!-- # Unused Parameters # -->
@min: 
@max: 


<!-- ##### FUNCTION g_rand_double ##### -->


@rand: 
@Returns: 


<!-- ##### FUNCTION g_rand_double_range ##### -->


@rand: 
@begin: 
@end: 
@Returns: 
<!-- # Unused Parameters # -->
@min: 
@max: 


<!-- ##### FUNCTION g_random_set_seed ##### -->


@seed: 


<!-- ##### MACRO g_random_boolean ##### -->
<para>
Return a random #gboolean. This corresponds to a unbiased coin toss.
</para>

@Returns: a random #gboolean.


<!-- ##### FUNCTION g_random_int ##### -->


@Returns: 


<!-- ##### FUNCTION g_random_int_range ##### -->


@begin: 
@end: 
@Returns: 
<!-- # Unused Parameters # -->
@min: 
@max: 


<!-- ##### FUNCTION g_random_double ##### -->


@Returns: 


<!-- ##### FUNCTION g_random_double_range ##### -->


@begin: 
@end: 
@Returns: 
<!-- # Unused Parameters # -->
@min: 
@max: 


