Intended as an efficient drop-in replacement for std::discrete_distribution, with added features for dynamic weight updates.