defmodule Random do def init() do :random.seed(:erlang.now()) end def normal(mean, sd) do {a, b} = {:random.uniform(), :random.uniform()} mean + sd * (:math.sqrt(-2 * :math.log(a)) * :math.cos(2 * :math.pi * b)) end end Random.init() xs = for _ <- 1..1000, do: Random.normal(1.0, 0.5)