Любой школьник, умеющий на пхп связать 2 строчки знает, что промо-коды надо генерировать не по какому-то алгоритму, а рандомно и держать их в БД. А в Яндексе далеко не школьники сидят.
Роман, Просто Роман: рандом -- не значит что подойдут любые. Рандомно сгенерировали N кодов, засунули в БД, распечатали на океевских флаерах, а при вводе сверяют с БД. Есть миллиард возможных комбинаций. Если яндекс запилили миллион (что ооочень много) кодов, то со случайно введённых только 1 из 1000 окажется валидным.