How should I light a procedurally generated level?

You’ll need to use movable spotlights and a movable skylight(not stationary.) Reduce the amount of spotlights by half and make sure their cones dont intersect with each other. The movable skylight will handle the dark spots(dont forget to recapture it every time you make a change with lights - even in run time.)