You need an engine for every independent and deterministic stream of random numbers.
Say, for example, that you want enemies to appear randomly during the game but in a predictable way so that you can save the game and replay or continue to play with the same stream or enemies (not only for replay, but also to stop the player from reloading because the stream of enemies was not in favor of the player; reloading with a predictable state ensures the same stream of enemies in the future as well, so no use reloading to get an easier game).
You also want your power-ups to appear randomly, but for the same replay and reload purposes as with enemies, you want to ensure a predictable stream of random numbers. Let's say a new power-up is generated every time a power-up is picked up (the game contains, say, three of them at any time).
With a common engine in this case, enemies are generated based on if and when a power-up is picked up, and that breaks replayability and predictability. You need to decide if things such as replayability and predictability are important.