#JavaScript (ES6), 92 bytes
Takes input as (['gold','silver','bronze'])('rep')
. Returns a Boolean value.
b=>F=([c,...a],x=b.map((n,i)=>n.repeat(+n&&3-i)).join``)=>c?(X=x.replace(c,''))!=x&F(a,X):!x
#JavaScript (ES6), 92 bytes
Takes input as (['gold','silver','bronze'])('rep')
. Returns a Boolean value.
b=>F=([c,...a],x=b.map((n,i)=>n.repeat(+n&&3-i)).join``)=>c?(X=x.replace(c,''))!=x&F(a,X):!x