Função que ordena arrays Randomicamente em JavaScript, como o shuffle() do PHP

Este post foi atualizado, pois eu encontrei que existem diversos algoritmos para esta função chamado shuffle()

De qualquer maneira, ainda acredito que este seja o melhor e menor algoritmo.

Então, se quiserem, o melhor nome para esta função é shuffle()
Pois no php, existe esta função nativa e funciona da mesma maneira!

Procurei algo como random() ou array_rand() que fosse nativa do JavaScript, porém não encontrei. Mas, econtrei uma função interessante, que funciona muito bem:

function randOrd() {
    return (Math.round(Math.random())-0.5);
}


Caso tenhamos um array como no modelo:

var nome = Array();
nome[0] = "Carlos";
nome[1] = "João";
nome[2] = "Leo";
nome[3] = "Maria";
nome[4] = "Silvia";

Perceba que os valores de nosso array está em ordem alfabética.
Utilizamos então a função randOrd() em nosso array:

nome.sort(randOrd);

Ao imprimir os array, eles estarão desordenados.

Uma maneira de exibí-los é utilizando um for:

totalNomes = nome.sizeOf;
for (i=0; i<totalnomes ; i++) {
    document.write('<br /> Este é o array['+i+']: '+nome[i]);
}

Este exemplo poderá mostrar:

Este é o array[0]: Maria
Este é o array[1]: João
Este é o array[2]: Leo
Este é o array[3]: Carlos
Este é o array[4]: Silvia

3 ideias sobre “Função que ordena arrays Randomicamente em JavaScript, como o shuffle() do PHP

Deixe uma resposta