ランダムにデータを抽出する方法が分からない

贈り物を小学生にプレゼントするアプリを作っています。以下の条件で贈り先をランダムに抽出したいのですがやり方が分かりません。誰か教えて下さい。

(条件)
対象:1~6年生までの計60人の小学生がおり、各学年とも10人いる。
各学年の中から任意の3人を選び1等賞、2等賞、3等賞を贈る。
ボタンを押す度に一人ずつ選び出されるようにしたい。(ダブって同じ人がプレゼントを複数もらうことが無いようにしたい)

・データベースには「名前」と「学年(1~6)」とランダムに割り振られたID番号(1~60)を持っている。
・同姓同名の人はいない。

(ハマっているところ)
フィルターで学年別に10人抽出して、任意の3人を一人ずつ選び出すやり方が分からない。

表示だけで良ければ、
ListのCostomFilterと、ソートで実装することができます。

具体的には,以下のような方法です。

準備として、
UserDB に
No. ・・・固定のID
抽選No ・・毎回ランダムで変わる抽選用の数字

を用意します。

学年ごとのNoでフィルターし、抽選Noでソート

抽選Noは、Counterで開くたびに全員のUserIdが毎回Randomで変更されます。

あとは、学年ごとのListをそれぞれつくる。の繰り返し