## MLton 20241230

# MLtonRandom

    signature MLTON_RANDOM =
       sig
          val alphaNumChar: unit -> char
          val alphaNumString: int -> string
          val rand: unit -> word
          val seed: unit -> word option
          val srand: word -> unit
          val useed: unit -> word option
       end

- `alphaNumChar ()`

  returns a random alphanumeric character.

- `alphaNumString n`

  returns a string of length `n` of random alphanumeric characters.

- `rand ()`

  returns the next pseudo-random number.

- `seed ()`

  returns a random word from `/dev/random`. Useful as an arg to `srand`. If `/dev/random` can not be read from, `seed ()` returns `NONE`. A call to `seed` may block until enough random bits are available.

- `srand w`

  sets the seed used by `rand` to `w`.

- `useed ()`

  returns a random word from `/dev/urandom`. Useful as an arg to `srand`. If `/dev/urandom` can not be read from, `useed ()` returns `NONE`. A call to `useed` will never block — it will instead return lower quality random bits.