Stenli,
if ( randomShift = 0 ) {
v = +1;
}
else {
v = +0;
}
Во-первых, в строке 1 идет не сравнение переменной с числом, а присвоение значения этой самой переменной. Переменная станет равна нулю, а нуль всегда будет считаться за ложь (false).
Во-вторых, Math.random() возвращает случайно десятичное число от 0 до 1. Вероятность того, что рандом вернет нуль крайне и крайне мала (даже можно сказать, что она стремится к нулю).
В-третьих replace у вас должен выглядеть так:
h.replace(reg,'{{ $date_shift['+v+'] }}');
И вообще не понятно, что вы пытаетесь сделать, зачем все это?