[vox-tech] shuffling arrays in C?

Alexandra Thorn vox-tech@lists.lugod.org
Mon, 25 Nov 2002 15:56:58 -0800 (PST)


>       const int selection_size = ELEMS_IN_ARY(your_array) - (i + 1);
>       int selected_card = (i + 1)  /* don't include the already selected
>                                       cards, or the card to swap with */
>           + (int)((selection_size*1.0*rand())/(RAND_MAX+1.0)) /* see
> rand(3) */

Micah, could you explain how/why this would work?  It doesn't seem
intuitively obvious, and I prefer not to use code that I don't understand.

Thanks,
Alex