This package enables weighted random pick up and update with in O(log(N)) time.
You can implement lottery system in which a person is never chosen twice.
You can do the same thing by combining Random.weighted function and List.filter function in the elm/random package, but it takes O(N) time for every picking up and removal.