A theory is that the random number generator is more likely to gravitate towards certain opponents based on a factor decided whenever you load elements.
Interesting theory, but why in the world would it do that? I don't see the reason to go through the trouble of writing that code.
The pseudo-code for getting a random T50 opponent it's so simple it's silly:
top50 = sql('SELECT DISTINCT t.user FROM top_scores t ORDER BY t.score DESC LIMIT 50')
r = random(50)
return top50[r]
I just got matchups against deepdown 5 out of 8 tries at T50 and it gets pretty old playing the same opponent over and over.