Help with a PlaceID validation script

So, as a challenge, I’m creating a Place Roulette type game. I have ID generation down, I know how to fire the teleport, but all my generated IDs are returning false, even though some of them aren’t. I’m using this function to return whether the int64 I generated is actually a PlaceID or not, since many of them I’m generating are going to be all sorts of different assets. Additionally, if anyone knows, is there a way I can avoid private/restricted access games as well?

function idValidityCheck(id)
	local isgame
	local success,message = pcall(function()
		local gameid = marketplaceService:GetProductInfo(id)
		isgame = gameid.AssetTypeID == 9
	end)
	return success and isgame
end

I’m using this script from @brokenVectors on ScriptingHelpers to check, but I’m not super experienced with MarketplaceService yet. Can anyone help?

The way I’m generating the IDs is with the new Random class, using NextInteger to get a defined ID between 0 and a max.