Generate a random number within the callback you pass to RemoteEvent.OnClientEvent, so that a random object is selected from the array each time - in its current working, only a random object will be selected at the beginning and when the callback executes, the same object would be cloned each time the event fires unless the math.random call at the beginning runs again to produce a different result.
In short: move this line
local chosenPet = rfolder[math.random(1, #rfolder)]