Zamiast tablic lepiej w tym wypadku użyć list.
Gdzieś przy startowaniu gry tworzysz ds_list_create(), potem dodajesz do niej twoje 50 przedmiotów ds_list_add().
Przy tworzeniu instancji przedmiotów losujesz jeden z tej listy i go usuwasz ds_list_delete();
GML
// tworzenie listy
globalvar przedmioty;
przedmioty = ds_list_create();
ds_list_add(przedmioty, przedmiot1);
ds_list_add(przedmioty, przedmiot2);
ds_list_add(przedmioty, przedmiot3);
ds_list_add(przedmioty, przedmiot4);
. . .
// losowanie
var rand = irandom(ds_list_size(przedmioty));
instance_create(x, y, ds_list_find_value(przedmioty, rand));
ds_list_delete(przedmioty, rand);
Tylko trzeba się jeszcze zabezpieczyć przed tym jak lista będzie pusta.