summaryrefslogtreecommitdiff
path: root/src/gib_list.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gib_list.c')
-rw-r--r--src/gib_list.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/gib_list.c b/src/gib_list.c
index 1c313ba..a05fb4c 100644
--- a/src/gib_list.c
+++ b/src/gib_list.c
@@ -362,12 +362,10 @@ gib_list_randomize(gib_list * list)
srand(getpid() * time(NULL) % ((unsigned int) -1));
for (i = 0; i < len - 1; i++)
{
- r = (int) ((len - i - 1) * ((float) rand()) / (RAND_MAX + 1.0)) + i + 1;
- if (i == r)
- abort();
- t = farray[i];
- farray[i] = farray[r];
- farray[r] = t;
+ r = i + rand() / (RAND_MAX / (len - i) + 1 );
+ t = farray[r];
+ farray[r] = farray[i];
+ farray[i] = t;
}
list = farray[0];
list->prev = NULL;