It seems like it happens because you calculate the random number once and, use the same calculated numbers for the whole of the images. In addition to that, the Math.random function gives a number between 0 to 1. So, in order to get different locations, you can multiply the random
results with some value.
Try to calculate the random location inside the loop. Something like:
for(var i=0;i<nImages;i++){
xposition = Math.random() * 100;
yposition = Math.random() * 100;
imagecanvasarea.drawImage(CanvasImage,xposition,yposition,50,50);
}