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