Если вы запускаете этот код в интерактивной среде (например, в Jupyter Notebook), выполнение бесконечного цикла может привести к блокировке интерфейса, что делает его неприемлемым. В вашем коде не предусмотрена задержка между выводом чисел. Если вы запустите этот код, он будет выводить случайные числа так быстро, как позволяет ваша машина, что может выглядеть, как будто он не работает. На некоторых средах вывода текст может не отображаться, если программа работает слишком быстро без пауз. Вам нужно убедиться, что вывод действительно происходит.
Попробуйте добавить задержку между выводами случайных чисел. Вот, например (см. скрин).

Если вы все равно предпринимаете exec() для выполнения вашей строки, убедитесь, что вы добавили оператор time.sleep():

a='import random as r;import time as t;while True:print(r.randint(0,100))'
exec(a)