• Produce four 32-bit entropy words for an unseeded generator. Prefers crypto.getRandomValues; falls back to Date.now() mixed with Math.random when Web Crypto is unavailable.

    Returns [number, number, number, number]

    Four non-zero entropy words.

    The fallback is best-effort, non-reproducible entropy — it is never a play-path seed (production seeds the sohl.random singleton from this once, and never accepts a caller-supplied fixed seed through a play path).