common/weighted_shuffle: don't feed std::discrete_distribution with all-zero weights
This flaw results is the assertions like the following one:
```
/usr/include/c++/11/bits/random.tcc:2667: void std::discrete_distribution<_IntType>::param_type::_M_initialize() [with _IntType = int]: Assertion '__sum > 0' failed.
Aborted (core dumped)
```
The reason behind is that `std::discrete_distribution` sums
the weights and uses the result as a divisor.
Fixes: https://tracker.ceph.com/issues/62645
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
(cherry picked from commit
1b7a7a8df88ffac007dbafdecc131807de66c046)