Use a classificação padrão da competição para seus placares

O Standard Competition Ranking (SCR) é o sistema pelo qual as pessoas em uma tabela de classificação recebem posições, levando em consideração a possibilidade de empate.

Por exemplo, um placar ingênuo não saberá o que fazer quando mais de 1 usuário tiver a mesma quantidade de pontos. Eles estão todos na mesma posição, mas não serão classificados como tal.

SCR faz com que todos que estão na mesma posição, apareçam na mesma posição. Também vai um passo além e empurra a pessoa que está atrás deles no ranking o respectivo número de posições para trás.

Por exemplo. em vez de ter 1, 2, 3, 4, 5, você pode ter 1, 2, 3, 3, 5, ou 1, 1, 1, 1, 5.

É basicamente isso.

Então, como esse não é o problema mais fácil ou trivial de resolver, tenha uma aula básica para fazer isso por você. Não é especial, mas funciona (e tem alguma cobertura de teste):

https://gist.github.com/3859792

PS. Isso pode ou não travar com qualquer coisa que se aproxime de um grande conjunto de dados, então você vai querer aplicar uma dose liberal de cache a ele (ou até mesmo otimização) quando estiver fazendo algo um pouco mais extenuante do que os 10 primeiros ou qualquer outra coisa.