let image = this.children
this.children
относится к коллекции элементов dom, а не к одному элементу; поэтому вам нужно указать первый в вашем случае.
Если есть несколько дочерних узлов, кроме изображения, вы можете sh рассмотреть возможность использования querySelector('img')
вместо.
const images =
["https://i.picsum.photos/id/102/60/60.jpg",
"https://i.picsum.photos/id/1024/60/60.jpg",
"https://i.picsum.photos/id/1062/60/60.jpg",
"https://i.picsum.photos/id/1069/60/60.jpg"];
const buttons = document.querySelectorAll("button");
buttons.forEach(el => el.addEventListener("click", card))
function card() {
const randomImageUrl = images[Math.floor(Math.random() * images.length)];
const image = this.children[0];
image.src = randomImageUrl;
console.log(image.src);
}
<div>
<button type="button"><img src="" alt=""></button>
<button type="button"><img src="" alt=""></button>
<button type="button"><img src="" alt=""></button>
</div>