Normal user interface cannot limit the range of selectable RGB colors. You need some underhood knowledge or a third party add-on. Unfortunately those things are out of my range.
One practical way is to use a fixed color palette to choose from. Indexed color mode prevents all adjustments which slide the colors out of the palette. Obviously you have already thought this and seen it useless in your current work.
There's a workaround. You can crunch all colors in an existing image to a limited range with an adjustment layer. It works in Lab color mode. A curves layer where more gentle than 45 degrees lines are placed for L, a and b, flattens the lightness and chromaticity range:
To avoid color hue shifts have the same line for a and b and place them through the midpoint.
In this screenshot there's a screenshot of the color picker in the middle. It's flattened with an curves layer. In the right there's the normal color picker in use. (sorry for inferior screenshots, their colors are not right due too many conversions between our screens)
This method affects equally to all colors, also already in-range colors are flattened.
ADD due the edits in the question:
Try GIMP. It has comprehensive histogram. It literally can show how many pixels have color parameter "value" in the selected range.
Here 11,6% of pixels are darker than the background grey, which has value=128