Module:NIA

local p = {}

p.items = function( f ) local args = f.args or f       if f == mw.getCurrentFrame and args[1] == nil then args = f:getParent.args else f = mw.getCurrentFrame end local text = "" for item in mw.text.gsplit(args[1], '%s*,%s*') do               text = text .. f:callParserFunction('#icon', {item = item, size = 16, mod = args.mod}) end return text end

function shuffle(list) local indices = {} for i = 1, #list do		indices[#indices+1] = i	end local shuffled = {} for i = 1, #list do		local index = math.random(#indices) local value = list[indices[index]] table.remove(indices, index) shuffled[#shuffled+1] = value end return shuffled end

p.rand = function(f) local args = f.args or f	if f == mw.getCurrentFrame and args[1] == nil then args = f:getParent.args else f = mw.getCurrentFrame end section = {} for item in mw.text.gsplit(args[1], "{{NI|") do		item = item:gsub("{{,}}", ""):gsub("", "") if item ~= "" then table.insert(section, "{{NI|" .. item) end end return table.concat(shuffle(section), "{{,}}") .. mw.text.encode(args[1]) end

return p