manifoldmarkets / manifold

Manifold Markets: A market for every question
https://manifold.markets
MIT License
418 stars 157 forks source link

League cohort generation is not randomized #3055

Open DylanOConnell opened 2 hours ago

DylanOConnell commented 2 hours ago

Since November 2023, the intent is for league cohort generation to be entirely randomized. However, currently, only the first cohort per division is properly randomized—the shuffled array is then ignored and the remaining cohorts are grabbed in the same original sorted order. This leads to large imbalances in league balance each season (some cohorts are mostly inactive users).

Users shuffled:

let remainingUserIds = shuffle(divisionUserIds.concat())

Replaced by (original) unshuffled array:

remainingUserIds = divisionUserIds.filter((uid) => !userCohorts[uid])

Should use shuffled array: remainingUserIds = remainingUserIds.filter((uid) => !userCohorts[uid])

linear[bot] commented 2 hours ago

MAN-2011 League cohort generation is not randomized