подскажите алгоритм «перемешки с приоритетом»
хочу примерно следующее
const result = shuffleWithPriority([{el: 1, priority: 0.1}, {el: 2, priority: 10}, {el: 3, priority: 5}])
где в результате будет скорее всего 2,3,1, иногда 3,2,1, и совсем редко 1,2,3 либо 1,3,2
В идеале готовый код на npm, либо код на js. Но и просто описание подойдет.
По поводу эффективности, не критично, но желательно не больше чем O(n^2)
UPD решение
генерируем [псевдо]случайное число от 1 до <максимальный приоритет>
умножаем приоритет на получившееся число
сортируем в порядке получившихся приоритетов