Thanks for the help… Carlos thought I might be able to get it accomplished without an additional table. So I’m not sure which way would be better. Currently I haven’t been able to get either way working. But now that I see your method, I may give that a shot.
Here’s what I had, trying to make this work “on the fly”, with no luck. 
local shapesOnScreen = {}
local function spawnRoundShapes()
while #shapesOnScreen \< numThisRound do
for i=1, numThisRound do
local n = math.random(#allShapes)
if(allShapes[n].used == 0) then
table.insert(shapesOnScreen, i, allShapes[n])
allShapes[n].used = 1
shapesOnScreen[i] = display.newImageRect(allShapes[n].img, 50,50)
shapesOnScreen[i].x = \_W/2; shapesOnScreen[i].y = \_H/3
postSpawnAction(shapesOnScreen[i])
else
i= i - 1
end
end
end
for i,v in ipairs(shapesOnScreen) do print(shapesOnScreen[i]) end
end
Thanks a bunch for posting, It’s been 4 days since i’ve started trying to find a solution. Ever since they announced “Premium Support” I haven’t been able to get any answers… lol. [import]uid: 10361 topic_id: 8052 reply_id: 29555[/import]