1. A method for generating groups of users accessing content, the method comprising: receiving data, using one or more processors, specifying a maximum number of groups; receiving data, using the one or more processors, specifying a maximum number of users in each group; generating one or more shards based at least in part on the maximum number of groups, a shard identifier being associated with each shard; determining a substring of the shard identifier associated with the shard based at least in part on a sharding parameter; generating groups of users based at least in part on the substring of the shard identifier; determining whether a number of users included in one of the generated groups exceeds the maximum number of users; in response to determining that the number of users included in the one of the generated groups exceeds the maximum number of users, modifying the sharding parameter and determining a second substring of the shard identifier based at least in part on the modified sharding parameter; and generating modified groups based at least in part on the second substring of the shard identifier.