local VerticalRecoil = 0.3
local HorizontalRecoil = 0.225 * (-1)^math.random(0,1) --Randomizes (Left/Right)
local RecoilAngle = 25 --DEGREES
CurrentCamera.CFrame *= CFrame.Angles(math.rad(VerticalRecoil), math.rad(HorizontalRecoil), 0)
Note: I simplified the code for the purpose of this question.
Adding the vertical and horizontal recoil is simple, but how do I apply a recoil angle on top of that in order to achieve an overall left or right recoil bias as illustrated in the image?