Randomizer not working

Hey guy I’m working on a randomizer that picks a random item but the code always seems to pick the rarest Item every time

local function getItem()
	local TotalWeight = 0
	local result

	for i,v in pairs(Rocks.Zone1) do
		TotalWeight = TotalWeight + v.Rarity
	end
	local number = math.random(1,TotalWeight)
	print(number)
	local counter = 0
	for i,v in pairs(Rocks.Zone1) do
		counter = counter + v.Rarity
		if counter >= number then 
			result = v.Name
		end
	end
	

	print(result)
end

I’ve tried various alternatives but they don’t even give an item pls I require assistance

you need to break out of you loop once you find the result. Otherwise the script keep looking for results.

	for i,v in pairs(Rocks.Zone1) do
		counter = counter + v.Rarity
		if counter >= number then
			result = v.Name
			break
			-- or
			return v.Name
		end
	end