blob: 179cab99816d1bcc2f36d390ba344c24f7a797ca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/* ISC license. */
#include <stdint.h>
#include <string.h>
#include <skalibs/random.h>
void random_unsort_from (char *s, size_t n, size_t chunksize, randomgen_func_ref f)
{
char tmp[chunksize] ;
while (n--)
{
uint32_t i = random_uint32_from(n+1, f) ;
memcpy(tmp, s + i * chunksize, chunksize) ;
memcpy(s + i * chunksize, s + n * chunksize, chunksize) ;
memcpy(s + n * chunksize, tmp, chunksize) ;
}
}
|