local real startX1=GetRectMinX(gg_rct_yourRect)
local real startY1=GetRectMaxY(gg_rct_yourRect)
local real targetX1=GetRectMaxX(gg_rct_yourRect)
local real targetY1=GetRectMinY(gg_rct_yourRect)
//order unit to move from startX1,startY1 to move to targetX1,targetY1
//moves from top left to bottom right
local real startX2=startX1
local real startY2=targetY1
local real targetX2=targetX1
local real targetY2=startY1
//moves units from bottom left to top right
call SetUnitPosition(unit,startX1/2, startY1/2)
call IssuePointOrder(unit,targetX1/2,targetY1/2)
local real minY=GetRectMinY(gg_rct_yourRect)
local real maxY=GetRectMaxY(gg_rct_yourRect)
call SetUnitPosition(unit,GetRectMinX(gg_rct_yourRect),GetRandomReal(minY,maxY) )
call IssuePointOrder(unit,GetRectMaxX(gg_rct_yourRect),GetRandomReal(minY,maxY))
//something like this then? thought you wanted corner to corner