table.insert creates arrays, which means that the indexes in the table are ordered numbers rather than the IDs themselves. This also means that you need to use a value’s order in the table to reference it if it was added to the table with table.insert.
You can use table.find to find the user ID’s place in the table dynamically:
local t = match[tostring(playerWhoCreatedMatchId)] -- making this a variable just to make it look better
table.insert(t, tostring(player.UserId))
t[table.find(t, tostring(player.UserId))] = nil