That's avoiding the problem, instead of solving the problem.
Even if rand() is generating the upper bits as all 1's, that's of no consequence if he's modulating the value:
1111114756 % 4000 = 2756
1111118908 % 4000 = 2908
Besides, "time(0) % x" will generate the exact same numbers until a second passes, then it will generate the exact same numbers until another second passes, and so on.
It was a clever suggestion though, so keep 'em coming!