First, let’s put it on two lines (as you know semicolon separates commands on the same line):
K * TOSS 12
K ? RND 2 K 7
TOSS is randomly 1 or 0 (basically the same as RND 1), multiply by 12 and you get either 0 or 12, so after the first line, K is either 0 or 12 (50/50 chance).
The second line possibly overwrites K, possibly keeps it’s current value (either 0 or 12, from the first line). RND 2 returns either 0, 1 or 2, and since true in tt is non-zero, RND 2 has 66% chance of being true. If it’s true it put’s K in K (keeps K’s value of either 0 or 12), the other 33% of the time it puts 7 into K. These 33% of the time will “eat” equally into the 50/50 of the previous value of either 0 or 12, effectively reducing the chance of K being 0 from 50% to 33%, same with the chance of K being 12. So K will end up with a 33% chance of being 0, 12 or 7.
Obviously there’s some rounding missing here (33 + 33 + 33 is not 100), so to be exact: one 3rd of the time (33.3333333333333…% chance) K will be 7, one 3rd of the time it will be 0 and one 3rd of the time it will be 12, which I imagine it even better than 33% 
Did that help?