type Tuple = [number, T[]]; export function randomItems(arr: T[], count: number): T[] { const result = arr.concat().reduce( (p, _, __, arr) => { const [a, b] = p; return (a < count) ? [a + 1, b.concat(arr.splice(Math.random() * arr.length | 0, 1))] : p; }, [0, []] as Tuple ); return (result as Tuple)[1]; };