Ответ 1
Вы можете использовать random.SystemRandom
, если он доступен в вашей системе:
http://docs.python.org/2/library/random.html#random.SystemRandom
Класс, который использует функцию
os.urandom()
для генерации случайных чисел из источников, предоставляемых операционной системой. Не доступен для всех систем. Не полагается на состояние программного обеспечения, и последовательности не воспроизводятся.
http://docs.python.org/2/library/os.html#os.urandom
Возвращает строку из n случайных байтов, подходящих для использования в криптографии.
Эта функция возвращает случайные байты из источника случайности, специфичного для ОС. Возвращенные данные должны быть непредсказуемыми для криптографических приложений, хотя его точное качество зависит от реализации ОС.
например.
>>> import sys
>>> import random
>>> rng = random.SystemRandom()
>>> rng.random()
0.7195432667967437
>>> rng.randint(0, sys.maxint)
3614556690529452993