With Cycles, this answer is easy. The feature is there, but may not be stable. Go to your Render properties panel, down to Simplify subpanel (check its box) and find the Culling section.
From the manual:
- Camera Cull Automatically culls objects based on the camera frustum defined by the Margin.
- Distance Cull Automatically culls objects based on their distance from the active camera. This is set via the Distance property.
If you enable both, it's an and case: the object will only cull if it's outside camera view and beyond the distance property. Useful for keeping reflected objects in scene.
Hold on, you're not done yet: you have to go each object you want to be cull-able and set it to be so. Go to the Object properties panel, then the Visibility subpanel and check the appropriate box.
Tedious? Yes. And I say not stable because some of the source code contradicts (such as that lights are viable to be culled, but don't seem to be - feel free to correct me). But otherwise, it does what you want.
As for other renderers or the viewport - very limited, such as viewport backface culling and screen space culling in Eevee. The best universal way is to manually enable or disable object and collection visibility in the outliner.