Я адаптировал код, который нашел ЗДЕСЬ , чтобы работать вне его класса. Логика c все объясняется на сайте.
rand_num = 153
val = [
1000, 900, 500, 400,
100, 90, 50, 40,
10, 9, 5, 4,
1
]
syb = [
"M", "CM", "D", "CD",
"C", "XC", "L", "XL",
"X", "IX", "V", "IV",
"I"
]
roman_num = ''
i = 0
while rand_num > 0:
for _ in range(rand_num // val[i]):
roman_num += syb[i]
rand_num -= val[i]
i += 1
print(roman_num)