public static BufferedImage randomPixelMovement(Image img, int nDegree) {
		// Open a new image for playing graphic magic~ :)
		BufferedImage bufImg = convert(img);
		BufferedImage resultImg = new BufferedImage(bufImg.getWidth(),
				bufImg.getHeight(), BufferedImage.TYPE_INT_RGB);

		Random randomGem = new Random();

		// Scanning and making magic one by one, pixel by pixel~
		int xnew, ynew;
		for (int j = 0; j < bufImg.getHeight(); j++) {
			for (int i = 0; i < bufImg.getWidth(); i++) {
				// declare and set some variables.....
				xnew = i;
				ynew = j;
				int x, y;

				// get the random value that will not out of coordinate!!!!
				do {
					int randomX = randomGem.nextInt(nDegree);
					int randomY = randomGem.nextInt(nDegree);
					int offsetX = randomX - nDegree / 2;
					int offsetY = randomY - nDegree / 2;
					x = xnew + offsetX;
					y = ynew + offsetY;
					// The next four line of codes are for slow computers.
					// If your computer is fast, please ignore them for a better
					// quality output even in HIGHLY randomized picture.
					/*
					 * if(x<0 || x>(bufImg.getWidth()-1)) x = i; if(y<0 ||
					 * y>(bufImg.getHeight()-1)) y = j;
					 */
				} while (x < 0 || x > (bufImg.getWidth() - 1) || y < 0
						|| y > (bufImg.getHeight() - 1));

				// put the colour of x,y pixel from the original image to the
				// xnew,ynew pixel of the result image
				int values = bufImg.getRGB(x, y);
				Color color = new Color(values);
				resultImg.setRGB(xnew, ynew, color.getRGB());
			}
		}
		return resultImg;// Simpliy return the product and happy~ ^^
	}