Во-первых, в `a % 3 && a % 5 == 0` для `a%3` истиной будет если a не делится на 3. Исходя из строки для консоль-лога, вы хотите сделать наоборот, чтобы истина была если делится на 3. Тогда нужно `a%3===0 && a%5===0`.
Во-вторых, `a%3===0 && a%5===0` должно быть первым условием if, иначе a%5===0 и a%3===0 в отдельности имеют высший приоритет и до проверки соответствия и тому, и тому условию оно никогда не будет доходить.
В-третьих, последний if - избыточен. Его можно заменить на просто else.
И parseInt во-второй строке также не нужен. Так как 'Math.random() * 24 + 1' итак возвращает значение типа Number(Число)
Итого:
var a= Math.random() * 24 + 1;
if (a % 3 === 0 && a % 5 === 0) {
console.log(a + " делится на 3 и 5");
} else if(a % 5 === 0){
console.log(a + " делится на 5")
} else if(a % 3 === 0){
console.log(a + " делится на 3");
} else {
console.log(a + " не делится на 3 и 5");
}