The new DMG likewise has a big table for figuring out how many rolls would succeed given a target number and number of rolls.
I have two approaches I prefer these days:
-
The damage pool. Instead of tracking individual damage, you pool damage in a single tally and remove the last monster hit when it crosses the HP of a monster. Add up all the damage and remove a bunch of monsters with an area attack.
-
Group up sets of monsters into four groups and then roll once for each group. If sixteen skeletons have to save versus a turn undead. Group them into four groups of four and roll four times.
We have a handful of ideas like this in Forge of Foes and the Lazy DMs Companion and released them under a CC license here:
https://slyflourish.com/lazy_gm_resource_document.html#runninghordes
I wrote an article with my thoughts on running mysteries here:
https://slyflourish.com/running_investigations_and_mysteries.html