Zufallsgenerator in Javascript oder PHP

Sticko

Cadet 2nd Year
Registriert
Nov. 2011
Beiträge
23
Moin zusammen,

Ich würde gerne einen Zufallsgenerator schreiben mit dem ich aus einer Liste von Namen immer in 4er-Gruppen die Namen zusammenstelle.
Die Liste kann auch direkt in das Script integriert sein, muss also nicht zwangsläufig aus einer Datei eingelesen werden.

Bsp Liste
Name 1
Name 2
Name 3
Name 4
Name 5
Name 6
Name 7
Name 8
Name 9
Name 10
Name 11
Name 12

Das Ergebnis soll dann zufällig zusammengewürfelt etwas in dieser Richtung ergeben:

Gruppe 1:
Name 11
Name 2
Name 7
Name 4

Gruppe 2:
Name 1
Name 12
Name 8
Name 5

Gruppe 3:
Name 9
Name 3
Name 6
Name 10

Wie kann ich sowas bewerkstelligen?
Oder geht sowas einfacher mit Excel?

Programmierkenntnisse sind ansatzweise vorhanden - und bei Google habe ich nichts gefunden, was mir wirklich weiterhilft.
Vielleicht fehlt mir einfach die Logik dahinter :/

Gruß
Sticko
 
Ich würde immer zufällig einen Namen aus der Liste rausnehmen und in die Gruppe hineinpacken, solange noch Namen in der Liste sind. Dabei immer eine neue Gruppe anfangen, wenn in der aktuellen 4 Namen sind.
 
Also müsste ich per Zufall immer einen Namen aus der Liste nehmen, den in ein Array schreiben und den Vorgang solange wiederholen bis die Anzahl von 4 erreicht ist .. und das dann So oft wie Namen vorhanden sind.

Stimmt das so in etwa?
 
Thx, schonmal :)

ich probiere mal etwas rum und gucke mir die Excellösungsgeschichte an :)
 
Javascriptansatz:

Um das Array zufallsmäßig zu sortieren, kann man z.B. auf Fisher-Yates zurückgreifen.
D.h. Liste von hinten durchlaufen und aktuelles Element mit Element zufälliger Position tauschen.

Die Ausgabe ist dann einfach, einfach Zähler mitführen, der nach x Elementen immer eine neue Gruppe beginnt.

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<script type="application/javascript" language="javascript">
function listeMischen(arr){
    for (var i = arr.length - 1; i > 0; i--) {
        var j = Math.floor(Math.random() * (i + 1));
        var temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
	}
    return arr;
}

function listeAusgeben(arr,anzahlProGruppe){
	var j=0, gruppe=0; 
    for (var i = 0; i<arr.length; i++) {
		j=i%anzahlProGruppe+1;
		if (j==1){
			document.write("<strong>Gruppe "+(++gruppe)+":</strong><br />");
		}
		document.write(j+". "+arr[i]+"<br />");
	}

}
</script>

</head>

<body>
<script type="application/javascript" language="javascript">
var personen = ["name1", "name2", "name3", "name4","name5", "name6", "name7", "name8","name9", "name10", "name11", "name12"];
listeMischen(personen);
listeAusgeben(personen,4);
</script>

</body>
</html>
 
Zurück
Oben