using System; public static class Extensions { public static double NextGaussianDouble(this Random r) { double num; double num3; do { num = 2.0 * r.NextDouble() - 1.0; double num2 = 2.0 * r.NextDouble() - 1.0; num3 = num * num + num2 * num2; } while (num3 >= 1.0); double num4 = Math.Sqrt(-2.0 * Math.Log(num3) / num3); return num * num4; } }