case WM_COMMAND:
static int a;
a=rand();
printf("%d",a);
return 0;

なんていうのやめた方がいいですか?
WM_COMMANDが同時に送られた時、a=rand();が同時に実行されたらaのデータが壊れると思うのですが。