Выделяем некую область памяти. Зависящую от границ чисел. Заполняем 0. Далее генерируем число. И пишем в эту память со смещением равным этому числу 1. При записи проверяем если там уже 1 - задача решена.
Да. Я предложил (но не успел опубликовать) похожий вариант. ;)
ЗЫ: Любой генератор случайных чисел оперирует в фиксированных границах. В LibC это 0..RAND_MAX (2147483647).