Hallo,
du kannst das Array mittels BubbleSort (absteigend) sortieren und nach Feststellung der Größe n des gewünschten Array-Abschnitts den Index des zufälligen Items per Random(n) bestimmen.
Delphi-Quellcode:
// uses Types;
procedure BubbleSort(var ida: TIntegerDynArray);
var
i, iInner, iOuter: Integer;
begin
// vom zweiten bis zum letzten Eintrag
for iOuter := Succ(Low(ida)) to High(ida) do
// für alle Einträge unterhalb des aktuellen
for iInner := Pred(iOuter) downto Low(ida) do
if ida[iInner] > ida[Succ(iInner)] then
begin // Vertauschen um Teilvektor zu ordnen
i := ida[Succ(iInner)];
ida[Succ(iInner)] := ida[iInner];
ida[iInner] := i;
end else Break; // Teilvektor ist sortiert
end;
Grüße vom marabu