@merner; hocama katılmakla birlikte;
Anladıgım kadarıyla dizideki 1 numara 1 kere gelsin diyorsunuz.
bunun için numarayı çektikten sonra, bu numarayı diziden silebilirsiniz - ki gereksiz yere tekrardan db ye sorgu atmazsınız ve dizinizde 10 eleman varsa kod 10 kere cagrilir, else kısmına dusmez, recursive olarak fonksiyonu yazip kullanabilirsiniz.
Bu kodla getirilen numarayı diziden silebilirsiniz.
unset($result[$random_keys]);
Beklerken bende buna benzer bir çözüm ürettim hocam yinede teşekkür ederim en mantıklı çözüm bu olacak ki, sorguyuda giderek azaltmak daha mantıklı oldu tekrardan çok teşekkür ederim ilgilendiğiniz için sonsuz teşekkürler.