For what it's worth, you can use a single $(6)$ sided die (or one red die and one green one) to fairly simulate a $(19)$ sided die, as follows:
Roll the die until you get a number less than $(6)$. Denote the satisfying roll as $(r_1)$. Then roll the die again until you get less than $(5)$. Denote this roll as $(r_2)$. Then compute $T_1 = [4 \times (r_1 - 1)] + (r_2)$. As has already been discussed, $T_1$ is equally likely to be assigned any of the numbers in $\{1,2,\cdots, 20\}.$
Now, repeat the exact same procedure, computing $T_2$. If $T_2 = T_1$, reject $T_2$ and compute $T_2$ from scratch. Finally, once $T_2 \neq T_1$, for $T_2 > T_1$, set $T_2 = T_2 - 1.$
Note that the objection that it theoretically could take an unbounded number of rolls until $T_2$ is determined also applies to the original procedure of emulating a $(20)$ sided die. That is, it theoretically could take an unbounded number of rolls until you roll $< (6)$.
To verify that this procedure works, the case of $T_1 = 1$ or $T_1 = 20$ is trivial.
Consider 1 < $T_1 < 20$. Then, consider the computation of $T_2$, once $T_2 \neq T_1$, and before $T_2$ is adjusted to ($T_2 - 1 ~:~$ if necessary). The $(19)$ possible values of $T_2$ represented by
$\{1,\cdots, (T_1 - 1), (T_1 + 1), \cdots, 20\}$ are equally likely. This is because $T_1$ was computed at random.
Then, the final computation of $T_2$ will be represented by shifting $\{(T_1 + 1), \cdots, 20\}$ down $(1)$ if the unadjusted value of $T_2$ happened to be $> T_1$.