{"version":3,"sources":["../../../src/lib/pickRandom.ts"],"names":[],"mappings":";;;AAOO,SAAS,UAAA,CAAc,KAAqB,EAAA,MAAA,GAAS,CAAY,EAAA;AACvE,EAAM,MAAA,GAAA,GAAM,CAAC,GAAG,KAAK,CAAA;AAErB,EAAA,IAAI,OAAO,MAAA,KAAW,WAAe,IAAA,MAAA,KAAW,CAAG,EAAA;AAClD,IAAO,OAAA,GAAA,CAAI,KAAK,KAAM,CAAA,IAAA,CAAK,QAAW,GAAA,GAAA,CAAI,MAAM,CAAC,CAAA;AAAA;AAGlD,EAAA,IAAI,CAAC,GAAA,CAAI,MAAU,IAAA,CAAC,MAAQ,EAAA;AAC3B,IAAA,OAAO,EAAC;AAAA;AAGT,EAAO,OAAA,KAAA,CAAM,IAAK,CAAA,EAAE,MAAQ,EAAA,IAAA,CAAK,IAAI,MAAQ,EAAA,GAAA,CAAI,MAAM,CAAA,EAAK,EAAA,MAAM,IAAI,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA,IAAA,CAAK,MAAO,EAAA,GAAI,GAAI,CAAA,MAAM,CAAG,EAAA,CAAC,CAAE,CAAA,CAAC,CAAC,CAAA;AAC3H;AAZgB,MAAA,CAAA,UAAA,EAAA,YAAA,CAAA","file":"pickRandom.mjs","sourcesContent":["/**\n * Picks a random element from an array\n * @param array The array to pick a random element from\n * @param amount Amount of values to obtain randomly (default: 1)\n */\nexport function pickRandom<T>(array: readonly T[], amount?: 1): T;\nexport function pickRandom<T>(array: readonly T[], amount: number): T[];\nexport function pickRandom<T>(array: readonly T[], amount = 1): T | T[] {\n\tconst arr = [...array];\n\n\tif (typeof amount === 'undefined' || amount === 1) {\n\t\treturn arr[Math.floor(Math.random() * arr.length)];\n\t}\n\n\tif (!arr.length || !amount) {\n\t\treturn [];\n\t}\n\n\treturn Array.from({ length: Math.min(amount, arr.length) }, () => arr.splice(Math.floor(Math.random() * arr.length), 1)[0]);\n}\n"]}