Thanks to anyone that took the time to answer my question, but I wanted to answer it myself for future people interested in a potential solution - I replaced each instance of rand() % 200 + (-200) In my question code (for the randomized x and z values of the Vector3f object) with the following:
-200 + static_cast <float> (rand()) /( static_cast <float> (RAND_MAX/(200-(-200))))
And now this code correctly generates floats between -200 and 200.