Tween not playing

Hello. As the title explains, my part is not moving after the first movement.
There are no errors in the output.

local ts = game:GetService("TweenService")
local unit = script.Parent
local goal = {}
goal.Position = Vector3.new(math.random(-100,100),208.338,math.random(-100,100))
local tw = ts:Create(unit,TweenInfo.new(2),goal)


while true do 
	wait(math.random(2,7))
	tw:Play()
end

You have to make the tween (and set the goal) in the loop so it always chooses a new position