На основе
create table cards
(
id int null,
color varchar(50) null
);
create index table_name_color_index
on cards (color);
INSERT INTO cards (id, color) VALUES (1, 'gold');
INSERT INTO cards (id, color) VALUES (2, 'silver');
INSERT INTO cards (id, color) VALUES (3, 'gold');
INSERT INTO cards (id, color) VALUES (4, 'red');
INSERT INTO cards (id, color) VALUES (5, 'blue');
, если вы можете отформатировать входную строку
select * from cards where color IN ('gold','silver','bronze');
, если нет
select * from cards where FIND_IN_SET(color,'gold,silver,gold,broze,silver');
и для 1 случайного результата получается:
select * from cards where color IN ('gold','silver','bronze') order by RAND() limit 1;