Swap objects with same tag?

I have few random blocks. Some of them have same tag. Is it possible to swap position between 2 objects using their tag?
for example:

 		GameObject.FindGameObjectsWithTag ("Blah");
            //swap their position....how?


Depending on how you want to switch them, you will need to make your own algorithm. But in it’s simplest form;

GameObject[] blocks = GameObject.FindGameObjectsWithTag("Blah");

if (blocks.Length > 1) // No need to swap if there's only 1 or no objects
    Vector3 tempPosition = new Vector3();
    for (int i = 0; i < blocks.Length-1; i += 2)
        tempPosition = blocks*.transform.position;*

blocks*.transform.position = blocks[i+1].transform.position;*
blocks[i+1].transform.position = tempPosition;