If you figure it out, let me know. I'm dealing with the same problem with a champion archer fighter in my game: Action Surge for four arrows that crit on a 19+. *Shudder*
Dungeons help. Can't get 600 feet away and still see through the door.
I dig your random monster idea as well.
Fundamentally the sniper superiority issue is mostly caused by the fact that 5E makes movement too slow and ranged fire at moving targets too accurate--it makes 5E combats favor ranged combat even more heavily than the real world. To mitigate this in an outdoor scenario, you can either create monsters with a wider variety of movement speeds and modes, e.g. boosting quadrupedal movement speeds by a factor of three and flying movement speeds by a factor of ten, or you can stick within the existing rules and stack blocks and find other ways to increase closing rates, such as exploiting zero-duration "falling" as dive-bombing.
I'm telling you, dude, dive-bombing is where it's at for killing archers. Four or five gryphons "falling" from 1000' range to melee in one round--melee-specialized dudes will eat that up, because that's exactly the threat profile they are specialized for, and they can even grapple the gryphons to the ground and pin them if they want to. But a sniper will hate it.
You don't have to make every enemy a dive-bombing gryphon/dragon/peryton/whatever. All you have to do is, if it's an outdoor scenario and you don't want the sniper getting too far from the main party, have a flock of flying enemies circling over his head to threaten his flank. He'll catch up to his melee buddies fast enough.