Choosing subsets of a set such that the subsets satisfy a global constraint

We have a set of items $I=\{{i}_{1},{i}_{2},...,{i}_{n}\}$. Each of these items has what we call a $p$ value, which is some real number. We want to choose a subset of $I$, call it ${I}^{\prime}$, of size $m$ (for some m with $1\le m\le n$) such that the average of the $p$ values of the items in ${I}^{\prime}$ falls within some specified range, $[{p}_{l},{p}_{u}]$.

We hope to do this in $O(n)$ time, but any polynomial time algorithm is good enough. We certainly do not want to just try every possible subset of I of size $m$ and then check whether it satisfies the average $p$-value constraint.

Finally, we will be doing this repeatedly and we want the subsets chosen to be a uniformly random distribution over all the possible such subsets.

Is there a way of doing this?

We have a set of items $I=\{{i}_{1},{i}_{2},...,{i}_{n}\}$. Each of these items has what we call a $p$ value, which is some real number. We want to choose a subset of $I$, call it ${I}^{\prime}$, of size $m$ (for some m with $1\le m\le n$) such that the average of the $p$ values of the items in ${I}^{\prime}$ falls within some specified range, $[{p}_{l},{p}_{u}]$.

We hope to do this in $O(n)$ time, but any polynomial time algorithm is good enough. We certainly do not want to just try every possible subset of I of size $m$ and then check whether it satisfies the average $p$-value constraint.

Finally, we will be doing this repeatedly and we want the subsets chosen to be a uniformly random distribution over all the possible such subsets.

Is there a way of doing this?