borrame.com - Colección particular de recortes de código y documentación para programación web

Canales RSS

Lo más fresco

  1. Enlaces sobre desarrollo web Modificado
  2. Cadena aleatoria en PHP Modificado
  3. Recortar texto Nuevo

Sugerencias del chef

Lo más visitado

  1. Canales RSS
  2. Formato condicional según el día de la semana
  3. Enlaces sobre desarrollo web
  4. Convertir de minutos a horas
  5. Recortar texto
Compartir esta página

Aleatorizar un array

Permutar, barajar, desordenar… Llámenlo como quieran, pero si necesitan alterar aleatoriamente el orden de un array éste es su recorte. La función no devuelve nada ya que el argumento se pasa por referencia (o sea, se modifica el original).

/* * Aleatoriza un array según el algoritmo de Fisher-Yates * * @version 2005-06-01 */ function fisher_yates(array) { var i = array.length; while (i--) { var j = Math.floor(Math.random() * (i + 1)); var tmp = array[i]; array[i] = array[j]; array[j] = tmp; } }

El mérito (o desmérito) del algoritmo se lo debemos a R. A. Fisher y F. Yates, a quienes me imagino con sus gafas de culo de vaso y su barbita rubia llenando de garabatos una enorme pizarra en alguna universidad del medio oeste.

Ejemplo de uso

var foo = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); document.write("<p>" + foo.join(", ") + "</p>"); fisher_yates(foo); document.write("<p>" + foo.join(", ") + "</p>");

Esta página ha sido impresa el sábado 29 de agosto de 2026 (07:51:41 +0200) desde https://borrame.com/recortes/javascript/fisher-yates.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

Lorem ipsum dolor sit amet.

© 2005-2026 by Álvaro González (alvaro.es) • Burgos (España) • borrame.com