library(random) provides an 
alternative API to the same random primitives.
random. If random, 
repeat the initialization procedure described with the function
random/1. Here is 
an example:
?- set_random(seed(111)), A is random(6). A = 5. ?- set_random(seed(111)), A is random(6). A = 5.
state(State) option.bugGMP 
provides no portable mechanism to fetch and restore the state. The 
current implementation works, but the state depends on the platform. 
I.e., it is generally not possible to reuse the state with another 
version of GMP or on a CPU with different datasizes or endian-ness.
?- current_arithmetic_function(sin(_)). true.