Ich weiss ja, wie man es richtig macht (Fisher-Yates), aber beim Ziehen von Karten ist mir das in den Sinn gekommen (Ich denke, das geht noch als Hilfe, ohne einem die Arbeit abzunehmen):
Delphi-Quellcode:
Procedure ZufaeligeReihenfolgeVonDreizehnZahlen;
Var
i : Integer;
Liste : TListeVonZahlen; // Geeigneten Datentyp ausdenken
Begin
SchreibeDreizehnZahlenInDie(Liste); // Das ist einfach zu programmieren
For i := 1 to 13 do begin
Zahl := ZieheEineZufaelligeZahlAusDer(Liste); // Das auch
Writeln('Gezogene Zahl ',Zahl);
Entferne(Zahl, {aus der} Liste); // Und das auch, hinterher hat die Liste ein Element weniger
End;
End;
Das solltest Du umsetzen können.
Optimierungsvorschlag:
Man könnte das Ziehen und Entfernen auch in eine Routine packen. Das wäre natürlich viel schneller, weil ich ja die Position der Zahl kenne, die ich zufällig ausgewählt habe.