Nun ich bin für alle Lösungen offen, aber da Datenbanken extra für großen Mengen an Daten ausgelegt sind, sollten sie gerade für längere Vokabellisten sehr gut geeignet sein und wenn sie die restlichen Anforderungen erfüllen, lohnt es sich sicher sich mal damit zu beschäftigen.
Mir ist gerade noch eine Methode zur Ermittlung eines eines zufälligen Datensatzes eingefallen:
Delphi-Quellcode:
DeineQuery.SQL.Text := '
SELECT COUNT(ID) FROM Tabelle';
DeineQuery.Open;
x := DeineQuery
//ja hier müsste irgendwie die Antwort der SQL hin
x := x-2;
repeat
DeineQuery.SQL.Text := '
SELECT * FROM VokabelListe WHERE id != LetzteID LIMIT :x, 1 ';
DeineQuery.ParamByName('
x').Value := random(x);
DeineQuery.Open;
until DeineQuery.FieldByName('
Feld1').AsFloat > Random;