Как организовать random с приоритетом?
Стандартный алгоритм для интервалов:
Пусть на каждый случай большего рейтинга противника приходится два случая равного и три случая меньшего.
Больший: 1
Равный: 2
Меньший: 3
Просуммируем, 1+2+3 = 6. 
Найдём граничные значения:
Больший: [0, (0+1)] = [0, 1)
Равный: [1, 1+2) = [1, 3)
Меньший: [3, 3+3) = [3, 6)
Генерируем случайное число X от 0 до 6.
Если X < 1, то выбираем противника с большим рейтингом
Иначе если X < 3, то выбираем противника с равным рейтингом
Иначе выбираем противника с равным рейтингом
гуглить по взвешенной выборке, на чем и как реализовать дело третье