文字シャッフル

コードを貼るテスト。
2バイト文字のみの文字列から「つじしれゅんと」のようなアナグラムを作ります。
関数名は「tanisige inngurissyu」という由緒ある命名法です。

void kanji_syaffuru(char *buf)
{
	int cnt, i, n[100], tmp;
	char buf2[1024];
	int len = strlen(buf);
	if (len % 2) {
		fprintf(stderr, "err. in kanji_syaffuru().\n");
		return;
	}
	cnt = len/2;
	if (cnt > 100) cnt = 100;
	if (!cnt) return;

	for(i=0;i<cnt;i++) {n[i] = i;}

	for(i=0;i<cnt;i++)
	{
		int dest = randint0(cnt);
		tmp = n[dest];
		n[dest] = n[i];
		n[i] = tmp;
	}

	buf2[0] = 0;
	for(i=0;i<cnt;i++)
	{
		strncat(buf2, &buf[n[i]*2], 2);
	}

	strcpy(buf, buf2);
}