{"version":3,"file":"randomness.mjs","names":[],"sources":["../../src/utils/randomness.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\ntype WeightedItem<T> = {\n\tvalue: T;\n\tweight: number;\n};\n\nexport function weightedShuffle<T>(arr: WeightedItem<T>[]): T[] {\n\treturn arr\n\t\t.map(({ value, weight }) => ({\n\t\t\tvalue,\n\t\t\tweight: Math.pow(Math.random(), 1 / weight),\n\t\t}))\n\t\t.sort((a, b) => b.weight - a.weight)\n\t\t.map((item) => item.value);\n}\n\nexport function shuffle<T>(arr: T[]): T[] {\n\tconst result = [...arr];\n\n\tfor (let i = result.length - 1; i > 0; i -= 1) {\n\t\tconst j = Math.floor(Math.random() * (i + 1));\n\t\t[result[i], result[j]] = [result[j], result[i]];\n\t}\n\n\treturn result;\n}\n"],"mappings":";AAQA,SAAgB,gBAAmB,KAA6B;AAC/D,QAAO,IACL,KAAK,EAAE,OAAO,cAAc;EAC5B;EACA,QAAQ,KAAK,IAAI,KAAK,QAAQ,EAAE,IAAI,OAAO;EAC3C,EAAE,CACF,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,OAAO,CACnC,KAAK,SAAS,KAAK,MAAM;;AAG5B,SAAgB,QAAW,KAAe;CACzC,MAAM,SAAS,CAAC,GAAG,IAAI;AAEvB,MAAK,IAAI,IAAI,OAAO,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG;EAC9C,MAAM,IAAI,KAAK,MAAM,KAAK,QAAQ,IAAI,IAAI,GAAG;AAC7C,GAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,IAAI,OAAO,GAAG;;AAGhD,QAAO"}