04 — RNG

Что сюда кладём

  • Теория RNG: PRNG vs CSPRNG vs hardware RNG.
  • Что значит “acceptably random” в контексте регуляторов (UKGC RTS 7).
  • Seed / reseed strategies: как избегать предсказуемости.
  • Scaling RNG output (как перевести [0,1) в индекс символа без слома распределения).
  • Compensated / adaptive поведение — почему запрещено.
  • Statistical testing: NIST SP 800-22, Diehard, TestU01.
  • Best practices в реализации (server-side only, аудит вызовов).
  • Языковые стандартные библиотеки: Python secrets, Go crypto/rand, Java SecureRandom, Node crypto.randomBytes, browser crypto.getRandomValues().
  • Provable fairness (для crypto-операторов): hash chains, server seed / client seed.

Что НЕ сюда

  • Конкретный RNG-сервис нашей RGS → kb/05-rgs/ или games/<slug>/rgs.md.
  • Cert-чеклисты RNG → kb/08-certification/.

Страницы

Стартовые источники

Будущие страницы (TODO)

  • PRNG vs CSPRNG — см. seedable-prng-for-simulation.
  • Seed / reseed strategy — см. там же (раздел Replay-долг).
  • Scaling RNG output без слома распределения — см. там же (WeightedPicker).
  • “Acceptably random” по UKGC RTS 7 — разбор требований.
  • NIST SP 800-22: пакет тестов и интерпретация результатов.
  • Compensated / adaptive — антипаттерны.
  • Provable fairness (crypto-схемы).