working weighted discrete distr