The rand_bytes
function binds to RAND_bytes in
OpenSSL to generate cryptographically strong pseudo-random bytes. See
the OpenSSL documentation for what this means.
[1] 0c de 3c f0 56 cb e2 e3 c6 3b
Bytes are 8 bit and hence can have 2^8 = 256 possible
values.
[1] 12 222 60 240 86 203 226 227 198 59
Each random byte can be decomposed into 8 random bits (booleans)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
rand_num is a simple (2 lines) wrapper to
rand_bytes to generate random numbers (doubles) between 0
and 1.
[1] 0.6899907 0.9845561 0.3384798 0.5011569 0.8129684 0.5493746 0.1324604
[8] 0.2214188 0.6837061 0.1766418
To map random draws from [0,1] into a probability density, we can use
a Cumulative
Distribution Function. For example we can combine qnorm
and rand_num to simulate rnorm:
Same for discrete distributions: