Если требования к распределению строгие (равномерное распределение) и общее количество пар не велико (1645 в нашем случае), то проще всего создать список всех возможных пар и выбирать из него:
import random
def random_pair(x_first, x_last, y_first, y_last):
y_first = 2
y_last = 9
x_first = 100
x_last = 999
pairs = []
for y in range(y_first, y_last + 1):
# x_start = x_first округлённый вверх до числа кратного y
x_start = y * ((x_first + y - 1) // y)
for x in range(x_start, x_last + 1, y):
pairs.append((x, y))
return lambda: random.choice(pairs)
rp = random_pair(2, 9, 100, 999)
for _ in range(10):
x, y = rp()
print(f'{x}/{y}', end=' ')
print()
$ python random-pairs.py
852/4 561/3 324/9 837/9 768/2 507/3 999/3 621/3 114/3 138/2