Возможно, проблема в переполнении.Допустим, ваш prng сгенерирует число от 0 до maxint.Если вы просто добавите слово, что произойдет, когда сложение даст число, большее, чем maxint?Конечно, вы можете просто отклонить эти цифры, но это приведет к тому же алгоритму, который вы предложили.
В зависимости от пола, некоторые приемы могут быть использованы для минимизации брака.Например, если необходимое число больше, чем maxint / 2, вы можете систематически устанавливать старший бит перед тестированием на отклонение.