Digamos que queremos hacer ese programa que genera un mundo de monos. Tu programa podría generar mil objetos Monkey (de mono), cada uno con un valor de altura entre 200 y 300 (ya que este es un mundo de monos que tienen alturas entre 200 y 300 pixeles).
var randomHeight = random(200, 300);
¿Esto representa con precisión las alturas de los seres reales? Piensa en una acera concurrida en la ciudad de Nueva York. Elige a cualquier persona de la calle y puede parecer que su altura es aleatoria. Sin embargo, no es el tipo de aleatorio que random() produce. Las alturas de las personas no están uniformemente distribuidas; hay mucho más gente de altura promedio que gente muy alta o muy baja. Para simular la naturaleza, podemos querer que sea más probable que nuestros monos sean de altura promedio (250 pixeles), pero aún poderles permitir ser, en ocasiones, muy bajos o muy altos.
Una distribución de valores acumulados alrededor de un promedio (llamado la “media”) se conoce como una distribución “normal”. También se llama la distribución gaussiana (llamada así por el matemático Carl Friedrich Gauss) o, si eres francés, la distribución laplaciana (llamada así por Pierre-Simon Laplace). Ambos matemáticos estaban trabajando simultáneamente a principios del siglo XIX en definir tal distribución.
Cuando graficas la distribución, obtendrás algo que se ve como lo siguiente, informalmente conocido como una campana de Gauss:
Gráfica de una campana de Gauss estándar
Una campana de Gauss estándar
La curva es generada por una función matemática que define la probabilidad de que ocurra cualquier valor dado como una función de la media (a menudo escrito como μ, la letra griega mu) y la desviación estándar (σ, la letra griega sigma).
La media es bastante fácil de entender. En el caso de nuestros valores de altura entre 200 y 300, probablemente tengas un sentido intuitivo de la media (es decir, promedio) como 250. ¿Sin embargo, si dijera que la desviación estándar es 3 o 15? ¿Qué significa esto para los números? Mirar las gráficas puede darnos una pista. La gráfica anterior nos muestra la distribución con una desviación estándar muy baja , donde la mayoría de los valores se acumulan estrechamente alrededor de la media. La siguiente gráfica nos muestra una desviación estándar mayor, donde los valores están más uniformemente extendidos a partir de la media:
Gráfica de una campana de Gauss con una desviación estándar mayor
Una campana de Gauss con una desviación estándar mayor
No estás familiarizado con el concepto de "desviación estándar"?¡No te preocupes! Puedes estudiar Varianza y desviación estándar por separado en Khan Academy antes de continuar.
Los números resultan ser de la siguiente manera: dada una población, 68% de los miembros de esa población tendrán valores en el rango de una desviación estándar de la media, 98% dentro de dos desviaciones estándar y 99.7% dentro de tres desviaciones estándar. Dada una desviación estándar de 5 pixeles, solo 0.3% de las alturas de los monos serán menores de 235 pixeles (tres desviaciones estándar por debajo de la media de 250) o mayores que 265 pixeles (tres desviaciones estándar por encima de la media de 250).

Cálculo de la media y la desviación estándar
Considera un grupo de diez estudiantes que reciben las siguientes calificaciones (de un total de 100) en un examen:
85, 82, 88, 86, 85, 93, 98, 40, 73, 83
La media es el promedio: 81.3
La desviación estándar se calcula como la raíz cuadrada del promedio de los cuadrados de las desviaciones alrededor de la media. En otras palabras, toma la diferencia de la media para cada persona y elévala al cuadrado (varianza). Calcula el promedio de todos estos valores y saca la raíz cuadrada como la desviación estándar.
CalificaciónDiferencia con la mediaVarianza
8585, minus, 81, point, 3 = 3.7left parenthesis, 3, point, 7, right parenthesis, start superscript, 2, end superscript = 13.69
8282, minus, 81, point, 3 = 0.7left parenthesis, 0, point, 7, right parenthesis, start superscript, 2, end superscript = 0.49
8888, minus, 81, point, 3 = 6.7left parenthesis, 6, point, 7, right parenthesis, start superscript, 2, end superscript = 44.89
etc.... ... 
 Varianza promedio:228.81
La desviación estándar es la raíz cuadrada de la varianza promedio: 15.13
¿Quieres entender mejor la desviación estándar? Puedes estudiar Varianza y desviación estándar con mayor profundidad aquí en Khan Academy.

Afortunadamente para nosotros, para utilizar una distribución normal de números aleatorios en un programa aquí, no tenemos que hacer ninguno de estos cálculos nosotros mismos. En cambio, podemos hacer uso del objeto Random proporcionado por ProcessingJS.
Para usar Random, primero debemos instanciar un nuevo objeto Random, pasándole 1 como parámetro. A esa variable la llamamos "generator" porque lo que creamos puede ser pensado básicamente como un generador de números aleatorios.
var generator = new Random(1);
Si queremos producir un número aleatorio con una distribución normal (o gaussiana) cada vez que ejecutemos draw(), es tan fácil como llamar a la función nextGaussian().
var num = generator.nextGaussian();
println(num);
Así que, ahora, ¿qué se supone que tenemos que hacer con este valor? ¿Qué pasa si quisiéramos utilizarlo, por ejemplo, para asignar la posición x de una figura que dibujamos en la pantalla?
La función nextGaussian() regresa una distribución normal de números aleatorios con los siguientes parámetros: una media de cero y una desviación estándar de uno. Digamos que queremos una media de 200 (el pixel horizontal central en una ventana de ancho 400) y una desviación estándar de 60 pixeles. Podemos ajustar el valor de nuestros parámetros al multiplicarlos por la desviación estándar y sumarles la media.
var standardDeviation = 60;
var mean = 200;
var x = standardDeviation * num + mean;
Ahora, podemos crear nuestro programa que dibuja círculos semitransparentes de acuerdo con una distribución normal. El lugar más oscuro estará cerca del centro, donde se acumula la mayor parte de valores, pero de vez en cuando se dibujan círculos más lejos hacia la derecha o izquierda del centro.

Este curso de "Simulaciones Naturales" es un derivado de "La Naturaleza del Código" por Daniel Shiffman, usado bajo una Licencia Creative Commons Reconocimiento-NoComercial 3.0 Unported.