For a rank list, the problem really isn't sorting it once, but keeping it sorted as scores change.
You'll need some kind of index of the blids, like $Pref::INF::bl_id[%i]
But now, if you need to add a score to the middle of this list, you have to shift all following ones up by one.
How big do you expect this rank list to get?