### Struct

# GLib Rand

since: 2.0

#### Description

    struct GRand {
      /* No available fields */
    }

The GRand struct is an opaque data structure. It should only be accessed through the g_rand_* functions.

Available since: 2.0

#### Constructors

###### g_rand_new

Creates a new random number generator initialized with a seed taken either from `/dev/urandom` (if existing) or from the current time (as a fallback).

since: 2.0

###### g_rand_new_with_seed

Creates a new random number generator initialized with `seed`.

since: 2.0

###### g_rand_new_with_seed_array

Creates a new random number generator initialized with `seed`.

since: 2.4

#### Instance methods

###### g_rand_copy

Copies a `GRand` into a new one with the same exact state as before. This way you can take a snapshot of the random number generator for replaying later.

since: 2.4

###### g_rand_double

Returns the next random #gdouble from `rand_` equally distributed over the range [0..1).

since: 2.0

###### g_rand_double_range

Returns the next random #gdouble from `rand_` equally distributed over the range [`begin`..`end`).

since: 2.0

###### g_rand_free

Frees the memory allocated for the `GRand`.

since: 2.0

###### g_rand_int

Returns the next random #guint32 from `rand_` equally distributed over the range [0..2^32-1].

since: 2.0

###### g_rand_int_range

Returns the next random #gint32 from `rand_` equally distributed over the range [`begin`..`end`-1].

since: 2.0

###### g_rand_set_seed

Sets the seed for the random number generator `GRand` to `seed`.

since: 2.0

###### g_rand_set_seed_array

Initializes the random number generator by an array of longs. Array can be of arbitrary size, though only the first 624 values are taken. This function is useful if you have many low entropy seeds, or if you require more then 32 bits of actual entropy for your application.

since: 2.4