Camera Rotation system not working correctly

Hi! I have a problem with my camera rotation script. I dont know how to make the camera rotate to different positions, I mean like it does not always rotate 360 degrees, And what i want to do is that it rotates to the right and sometimes to the left and I dont know how to fix my script so that it rotates how i want .

Video:

Current Script:

local distancefrompart = 1
local heightfrompart = 5

local CurrentCamera = game.Workspace.CurrentCamera

local step = 0

local RS = game:GetService("RunService")

local part = game.Workspace.CameraToseeAll
local TimeOfPerk = 10

local RotateCamera1 = RS.RenderStepped:Connect(function(dt)
		step += 2 * (dt * 60) -- change the 1 addition for orbit speed change (the dt*60 is just so it moves consistently with regards to time, regardless of the framerate of the computer)
		local orbitcframe = CFrame.new(part.Position) * CFrame.Angles(0, math.rad(step % 360), 0) * CFrame.new(0, heightfrompart, -distancefrompart)
		local orbitcframe2 = CFrame.new(part.Position) * CFrame.Angles(0, math.rad(step % -240), 0) * CFrame.new(0, heightfrompart, -distancefrompart)
		local orbitcframe3 = CFrame.new(part.Position) * CFrame.Angles(0, math.rad(step % 164), 0) * CFrame.new(0, heightfrompart, -distancefrompart)

		local RandomVariables = {
			orbitcframe;
			orbitcframe2;
			orbitcframe3;
		}
		local RandomOrbt = RandomVariables[math.random(1,#RandomVariables)]
		CurrentCamera.CFrame = CFrame.new(RandomOrbt.p, part.Position)
	end)

	
wait(TimeOfPerk)
	
RotateCamera1:Disconnect()

For one, you should set Camera | Roblox Creator Documentation to Scriptable.

The main issue however is that you are choosing which orbit to use each frame, which means that your camera is jumping around like crazy as it chooses different rotational paths to take each frame. Either switch to one orbitcframe, or select that random value outside of your RenderStepped function.