Golden Mirage is broken

Sometimes if I’m lucky, one of the coins’ value is different from the rest, so that my double array code picks it up and my hero can collect, but most of the time, all the coins have the same value, so my hero cannot identify which one is real since all of them are fake (if a coin’s value is same with another coin’s value, it’s fake). And every time my hero does nothing, meaning he can’t identify a coin which value is unique, I manually check every coin’s value on the scene and they are all the same. I think it’s some bug.
Btw here’s my code:

# Collect 10 real coins.
def findOddOneOut(coins):
    values = []
    for coin in coins:
        values.append(coin.value)
    for i in range(len(coins)):
        coinValue = values[i]
        coin = coins[i]
        for j in range(len(coins)):
            if i == j:
                continue
            jValue = values[j]
            if jValue == coinValue:
                break
            if j == len(values) - 1:
                return coin
    return False
while True:
    coins = hero.findItems()
    realCoin = findOddOneOut(coins)
    if realCoin:
        hero.blink(realCoin.pos)

Yeah, I use Ritic, so I can blink.
~ Orb