Jim Meritt of Infidels includes on his "List of Biblical Contradictions" the question, "[Does] God change?" The EvilBible also makes this claim. Don Morgan's list also claims this is a contradiction.
|“|| Malachi 3:6 For I am the LORD, I change not; therefore ye sons of Jacob are not consumed.
James 1:17 Every good gift and every perfect gift is from above, and cometh down from the Father of lights, with whom is no variableness, neither shadow of turning.
1 Samuel 15:29 And also the Strength of Israel will not lie nor repent: for he is not a man, that he should repent.
Jonah 3:10 And God saw their works, that they turned from their evil way; and God repented of the evil, that he had said that he would do unto them; and he did it not.
Genesis 6:6 And it repented the LORD that he had made man on the earth, and it grieved him at his heart.
Numbers 23:19 God is not a man, that he should lie; neither the son of man, that he should repent: hath he said, and shall he not do it? or hath he spoken, and shall he not make it good?
Perhaps the best answer is that provided by CARM, "When God says that He does not change, He is speaking about His nature and character. But this does not mean that He cannot change how He works with people throughout history." For a similar passage to Malachi 3:6, see Psalms 89:34 - "My covenant will I not break, nor alter the thing that is gone out of my lips." Here it is explained why the "sons of Jacob are not consumed" and what change is being discussed.
|“|| Psalms 89:29 His seed also will I make to endure for ever, and his throne as the days of heaven.
30 If his children forsake my law, and walk not in my judgments;
31 If they break my statutes, and keep not my commandments;
32 Then will I visit their transgression with the rod, and their iniquity with stripes.
33 Nevertheless my lovingkindness will I not utterly take from him, nor suffer my faithfulness to fail.
34 My covenant will I not break, nor alter the thing that is gone out of my lips.
35 Once have I sworn by my holiness that I will not lie unto David.
36 His seed shall endure for ever, and his throne as the sun before me.
Clearly God by saying "I change not" as seen in the above passage is referring to His covenants with Abraham, Jacob, and David to preserve a lineage as His chosen people. It is for this reason that God numerous times when disgusted with Israel did not wipe them off the face of the planet (which judging by his frustration levels expressed numerous times, He would certainly have liked to do). Instead as God promised David, He used punishments (v. 32) but He refused to break His covenant that David's seed would endure for ever. (v. 36)
This can also be seen from the following passage with Moses where God ends up "repenting" for punishing Israel's idolatry of the golden calf:
|“|| Exodus 32:11 And Moses besought the LORD his God, and said, LORD, why doth thy wrath wax hot against thy people, which thou hast brought forth out of the land of Egypt with great power, and with a mighty hand?
12 Wherefore should the Egyptians speak, and say, For mischief did he bring them out, to slay them in the mountains, and to consume them from the face of the earth? Turn from thy fierce wrath, and repent of this evil against thy people.
13 Remember Abraham, Isaac, and Israel, thy servants, to whom thou swarest by thine own self, and saidst unto them, I will multiply your seed as the stars of heaven, and all this land that I have spoken of will I give unto your seed, and they shall inherit it for ever.
14 And the LORD repented of the evil which he thought to do unto his people.
God does not change His covenants and promises, and this is repeated throughout the Bible:
|“|| Numbers 23:19 God is not a man, that he should lie; neither the son of man, that he should repent: hath he said, and shall he not do it? or hath he spoken, and shall he not make it good?
Lamentations 3:22 It is of the LORD'S mercies that we are not consumed, because his compassions fail not.
Romans 11:29 For the gifts and calling of God are without repentance.
While God does not regret doing wrong (since God does not sin or do wrong), He can be seen to regret justifiable punishments enacted on evil human beings. (e.g. Ex. 32:14; Deut. 32:36; Jg. 2:18; 2 Sam. 24:16; 1 Chr. 24:15; Ps. 90:13; 106:45; 135:14; Jer. 26:19; Am. 7:3-6; Jon. 3:10)
Some of the confusion may be caused the archaic usage by the KJV of the word "repent" which is used to mean God simply being sorrowful, even for executing just punishments, and usage of the word "evil" which is used simply to mean a harsh punishment. See for example its usage in Jeremiah 18:8-13 where God says He will "repent of the evil" He does in punishing evil nations as long as they turn from their evil, and that if they do evil then He will "repent of the good". In KJV-speak, verse 12 even continues with "Thus saith the Lord; Behold I frame evil against you... return ye now every one from his evil way, and make your ways and your doings good."
|“|| Jeremiah 18:8 If that nation, against whom I have pronounced, turn from their evil, I will repent of the evil that I thought to do unto them.
9 And at what instant I shall speak concerning a nation, and concerning a kingdom, to build and to plant it;
10 If it do evil in my sight, that it obey not my voice, then I will repent of the good, wherewith I said I would benefit them.
11 ¶ Now therefore go to, speak to the men of Judah, and to the inhabitants of Jerusalem, saying, Thus saith the LORD; Behold, I frame evil against you, and devise a device against you: return ye now every one from his evil way, and make your ways and your doings good.
12 And they said, There is no hope: but we will walk after our own devices, and we will every one do the imagination of his evil heart.
Unfortunately, the KJV's continued popularity results in confusion over archaic wording that is centuries out of date. Perhaps people forget that words in the English language meant different things when the KJV was translated in 1611 than they do now, over 400 years later.