ad 1) Sie können mittels getItems()
ja eine Liste all derer Items (Fahrzeuge) erstellen, welche Ihre Anforderung ("häufiger") erfüllen. Diese Liste können Sie mit shuffle()
mischen und dann das erste Element verwenden - wichtig, dass Sie nicht vergessen das zu speichern.
ad 2) Mit der Gleichverteilung ist es hier ungleich schwieriger. Aus zwei Gründen:
(2.a) Wenn jemand ein selten genutztes Fahrzeug auswählt, muss er fast zwangsläufig dieses zugelost bekommen, weil dazu ja die wenigsten Daten vorliegen - da bleibt dann nicht mehr viel von der Randomisierung. Das ist ein methodisches Problem.
(2.b) Technisch müssen Sie die Gleichverteilung mehr oder weniger manuell sicherstellen. Dafür würden Sie erstmal mittels mehrerer Aufrufe von statistic()
eine Liste erstellen, wie häufig schon Daten zu welchem Fahrzeug erhoben wurden. Anschließend würden Sie diese Liste nach der Häufigkeit ordnen (z.B: mittels ksort()
und anschließend array_keys()
) und dann von oben nach unten prüfen, welches der Fahrzeuge der Teilnehmer ausgewählt hat. Wie gesagt: Die Fall, dass Sie hier noch Zufall benötigen tritt fast nicht mehr ein.