osmo-auc-gen: Fix compiler warnings about aliasing

I ran "./utils/osmo-auc-gen -2 -a COMP128v1" and verified that
the RAND doen't look empty

Fixes:
osmo-auc-gen.c: In function ‘main’:
osmo-auc-gen.c:219:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   *(uint32_t *)&_rand[0] = rand();
   ^
osmo-auc-gen.c:220:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   *(uint32_t *)(&_rand[4]) = rand();
   ^
osmo-auc-gen.c:221:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   *(uint32_t *)(&_rand[8]) = rand();
   ^
osmo-auc-gen.c:222:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
   *(uint32_t *)(&_rand[12]) = rand();
diff --git a/utils/osmo-auc-gen.c b/utils/osmo-auc-gen.c
index ee349ae..fda045a 100644
--- a/utils/osmo-auc-gen.c
+++ b/utils/osmo-auc-gen.c
@@ -214,12 +214,15 @@
 	}
 
 	if (!rand_is_set) {
+		int i;
 		printf("WARNING: We're using really weak random numbers!\n\n");
 		srand(time(NULL));
-		*(uint32_t *)&_rand[0] = rand();
-		*(uint32_t *)(&_rand[4]) = rand();
-		*(uint32_t *)(&_rand[8]) = rand();
-		*(uint32_t *)(&_rand[12]) = rand();
+
+		for (i = 0; i < 4; ++i) {
+			uint32_t r;
+			r = rand();
+			memcpy(&_rand[i*4], &r, 4);
+		}
 	}
 
 	if (test_aud.type == OSMO_AUTH_TYPE_NONE ||