La cueillette des 2 éléments aléatoires à partir de la matrice de

Quel est le moyen le plus efficace de sélectionner 2 unique aléatoire des éléments d'un tableau (c'est à dire, assurez-vous que le même élément n'est pas sélectionné à deux reprises).

J'ai jusqu'à présent:

var elem1;
var elem2;

elem1 = elemList[Math.ceil(Math.random() * elemList.length)];
do {
  elem2 = elemList[Math.ceil(Math.random() * elemList.length)];
} while(elem1 == elem2)

Mais souvent, cela se bloque mon chargement de la page.

Une meilleure solution?

Question supplémentaire, comment puis-je étendre à n éléments

OriginalL'auteur zsquare | 2012-03-15