Instantiate and object around the perimeter of an area inside of an area. (C#)

So I have a 3x3 grid of 400mx400m squares and there is a 100mx100m space inside each at the center. I want to instantiate objects within the 400mx400m square but not within the 100mx100m at random positions.

currently how I get the spawn position to instantiate with is this do this is with this:
coords2 = new Vector3(Random.Range(-400,0), 1, Random.Range(0, 400));
(Example for the left middle square in the 3x3 grid.)
Y is constant and I am getting a random X and Y value, this gets a random space within the square but will still spawn within the 100x100 square.

This creates kind of a square with a line going from one corner to the other making each side of the line acceptable spawn locations within the 400mx400m square, I need it to exclude the area in the center. Can I do this with one set of coordinates and still get a random range?

I also can’t seem to find a way to get all the values between two numbers say something like math.range(0 to 100) that returns 1,2,3,4…99 if I could that would be useful for something like (pseudo code) ` if(intantiatedObject.transform.position.x > math.range(0 to 5000))
{Don’t spawn there.}

(Using Unity 5.3.1f1)

I Don’t know why I did not think of this at first, I will just add a check after instantiation and if the object is in the coordinate range I don’t want it to spawn in it will delete it and get new cords.

if(instantiatedObject.transform.position.x > bounds1 && (instantiatedObject.transform.position.z < bounds2)
{GetRandomCoords(); InstantiateObject();}

I guess I solved this myself.