* Shuffles and returns a random slice of an array * @param num * @param array
(array: ArrayType1D | ArrayType2D, num: number)
| 616 | * @param array |
| 617 | */ |
| 618 | shuffle(array: ArrayType1D | ArrayType2D, num: number): ArrayType1D | ArrayType2D { |
| 619 | let i = array.length; |
| 620 | let j = 0; |
| 621 | let temp; |
| 622 | |
| 623 | while (i--) { |
| 624 | j = Math.floor(Math.random() * (i + 1)); |
| 625 | temp = array[i]; |
| 626 | array[i] = array[j]; |
| 627 | array[j] = temp; |
| 628 | } |
| 629 | |
| 630 | return array.slice(0, num); |
| 631 | } |
| 632 | |
| 633 | /** |
| 634 | * Sorts an array in specified order |