1. A method for multicasting data comprising: determining a set of minimum utility preferences for each user in a multicast group; determining utilities of data for which the users request; computating a corresponding probability distribution for the data from which the users are requesting; running a lottery of the minimum utility preferences according to the corresponding probability distribution; and, multicasting an operating point determined from the lottery.