This problem has already been solved by John von Neumann. In any unbiased coin, the probability of getting a head and then a tail must be the same as getting a tail and then a head. Therefore, flips 2 biased coins, if they are different then just return the first coin, otherwise, repeat. With this logic, the result cannot be biased.