import Blender matlist = [] for material in Blender.Material.Get(): if material.getName().find("foo") <> -1: matlist.append(material) for obj in Blender.Object.GetSelected(): if obj.getName().find("bar") <> -1 index = int(Blender.Mathutils.Rand() * len(matlist)) obj.setMaterial(matlist[index] Blender.Redraw()