मुझे यह अच्छा सा एल्गोरिथम क्वाड लिबेट में। आप शायद इसे कुछ प्रक्रियात्मक SQL में अनुवाद कर सकते हैं।
function WeightedShuffle(list of items with weights):
max_score ← the sum of every item’s weight
choice ← random number in the range [0, max_score)
current ← 0
for each item (i, weight) in items:
current ← current + weight
if current ≥ choice or i is the last item:
return item i