This seems to be a really strange issue:
This is my code:
#import
int main (int argc, const char * argv[])
{
@au
It seems unlikely but running some tests, after an srand the first rand seems always to be divisible by 7, at least in an int sized variable.
On several runs I got 1303562743, 2119476443, and 2120232758, all of which mod 7 to 0.
The second rand() works, because it is the second rand(). Throw a rand() before your first rand()... or better yet, use a better random number generator random or arc4rand if available.
Also see Stack Overflow question Why is (rand() % anything) always 0 in C++?.