One example for using algorithmic over true randomness comes up in games. For example, if the entire map generation is driven by a single RNG instance with a user-chosen (or, initially chosen off of true randomness), players can share seeds generating interesting worlds. Or, even more interesting, folks are brute-forcing Slay the Spire seeds in order to find cool seeds involving a relic called Pandoras Box, which replaces your entire starting hand.<p>From there on, it becomes a very conscious decision how many RNGs to manage in an engine. Unpredictable things, like UI or random animation choices and such tend to have their own RNG, so something like the AI or story-driving systems can have their own, more predictable RNG.<p>However, this again raises a tricky follow-up question: Do you persist the RNG state in the save file of a user? The answer here isn't as obvious as it seems, as it allows different kinds of save-game abuses. Re-initializing the RNG on load allows players to reload in order to get different results from actions. Persisting the RNG allows players to start testing and predicting actions after loading the game. It's a tricky question.<p>Another really interesting tangent to go on here as well is how the NES and similar old consoles handled randomness: They didn't really. The randomness was based on player inputs. This in turn gives raise to a great TAS technique: RNG manipulation. Carefully crafting input sequences can optimize the random results you get later, which results in entirely crazy runs.<p>It's a very interesting topic overall.