1 RNG and Fairness

All random outcomes in The Mandalay Bay use cryptographically secure random number generation. No outcome manipulation.

1.1 Python (CLI)

from blackjack.rng import SECURE_RANDOM  # secrets.SystemRandom() singleton
  • Card shuffles: Fisher–Yates via fisher_yates_shuffle()
  • Slot reels: weighted symbol selection per reel
  • Sports scores: strength-based simulation with secure randomness
  • Craps dice: independent uniform rolls
  • Lottery draws: secure digit selection
  • Prediction market price drift: secure random walk

1.2 Browser (web terminal + RPG)

// crypto.getRandomValues() for all outcomes

Every game module in docs/js/ uses crypto.getRandomValues() — never Math.random() for gameplay.

1.3 What is NOT random

System Behavior
History prediction markets Fixed resolutions based on documented historical truth
Blackjack basic strategy bots Deterministic decision tables (not RNG)
MGM Rewards tiers Threshold-based on lifetime wagered

1.4 Testing vs production

Blackjack unit tests inject a seeded RNG for reproducibility. This is test-only. Production code always uses secrets.SystemRandom().

1.5 Audit trail

The chip wallet ledger records every wager and payout with timestamps. Player Stats track per-activity net results. No hidden house edge adjustments beyond documented game rules and paytables.

1.6 Paytable transparency

  • Slot paytables shown when you sit at a machine
  • Blackjack rules documented in Blackjack and in-game Casino Guide
  • Sports odds displayed on the board before wagering
  • Prediction market prices shown at purchase time