Was willst du eigentlich sortieren? Erst möchtest du eine zufällige Reihenfolge und dann willst du wieder sortieren? Grundsätzlich ordnest du doch deinen Aktionen A..G die Zahlen 1..7 fest zu, oder nicht? Also A bekommt fest den Wert 1, B den Wert 2 usw. Jetzt ziehst du die erste Zahl und arbeitest die entsprechende Aktion ab. Dann ziehst du solange eine nächste Zahl, bis diese ungleich der schon gezogenen ist und arbeitest die nächste Aktion ab. Das machst du so lange, bis jede Zahl einmal gezogen wurde.
Da komme ich jetzt nicht mit....
Die Zahlen 1..7 sind ja Zufallszahlen. Er möchte A..G in zufälliger Reihenfolge aufrufen... Wenn ich also die Zufallszahlen der Größe nach sortiere, bekomme ich eine zufällige Reihenfolge... daher das Sortieren.
Ich denke, wie immer, gibt es mehrere Lösungswege:
Du nimmst ein zweidimensionales Array. In der ersten Dimension speicherst Du fest A..G, in der zweiten dynamisch die Zufallszahlen und sortierst dann nach den Zufallszahlen. Danach gehst Du von oben nach unten durch, die Zufallszahlen interessieren jetzt in der zweiten Dimension nicht mehr, jetzt guckst Du nur noch in die erste und liest aus, welche Aktion A..G zu startest.
Eine weitere ist, die Zufallszahlen in zwei Arrays zu speichern: Quasi eine Abwandlung von der ersten Lösung und vielleicht das, was Dagobert meint. Im ersten Array hast Du jetzt über den Arrayindex die Zuordnung der Zahlen zu A..G. Das zweite Array sortierst Du und "ziehst" jetzt die Zahlen nach und nach. Suchst die dann im ersten Array und hast über den Index die Aktion, die Du starten willst.
Du kannst auch Zahlen zwischen 1..7 generieren über den Zufallsgenerator und nimmst dann die Aktion A..G, die Du ausführen willst. Hierbei mußt Du nur aufpassen, daß Du eine Aktion nicht mehrfach ausführst. Taucht eine Zahl mehrfach auf, mußt Du den Zufallsgenerator ggf. mehrfach anschmeißen.
Array sortieren geht z.B. über _ARRAY_SORT aus Oscat.
Du kannst auch versuchen, ein Array 1..7 anzulegen und dieses in jedem Durchgang über _ARRAY_SHUFFLE aus Oscat durcheinanderzuwürfeln. Damit kommst Du eigentlich am Schnellsten zum Ergebnis. Hab ich gerade erst gesehen, daß es diese Funktion gibt...