public String replaceObfuscation() {
		String replaceObfuscatedCode = null;

		/*
		 * 難読化に使用する文字の個数を乱数で決める。
		 * 個数は必ず4以上とする。
		 */
		int keyCharacterNumber = keyCharacterList.size();
		int quantyKeyCharacter = 0;
		Random random = new Random();
		while (true) {
			quantyKeyCharacter = random.nextInt(keyCharacterNumber);
			if (3 < quantyKeyCharacter) {
				break;
			}
		}
		
		/*
		 * 難読化に使用する文字を決める。
		 * 難読化文字定義リストをシャッフルし、頭から先に決めた
		 * 使用個数分を難読化に使用する。
		 */
		String[] keyCharacter = new String[quantyKeyCharacter];
		Collections.shuffle(keyCharacterList);
		for (int i = 0; i < quantyKeyCharacter; i++) {
			keyCharacter[i] = keyCharacterList.get(i);
		}
		
		/*
		 * 決まった難読化文字を用いてコードを難読化する。
		 * ここでは60％の確率で難読化文字が入る。
		 */
		StringBuilder stringBuilder = new StringBuilder();
		char ch[] = targetCode.toCharArray();
		int threshold = 60;
		int randomNumberForObfuscateRatio = 0;
		int randomNumberForKeyCharacter = 0;
		
		stringBuilder.append("'");
		int counter = 0;
		while (counter < ch.length) {
			randomNumberForObfuscateRatio = random.nextInt(100);
			randomNumberForKeyCharacter = random.nextInt(keyCharacter.length);
			if (threshold < randomNumberForObfuscateRatio) {
				stringBuilder.append(keyCharacter[randomNumberForKeyCharacter]);
			} else {
				stringBuilder.append(ch[counter]);
				counter++;
			}
		}
		
		/*
		 * エスケープ文字の挿入などのコード整形処理。
		 */
		stringBuilder.append("'.replace(/");
		for (int i = 0; i < keyCharacter.length; i++) {
			if (isNeedsEscape(keyCharacter[i])) {
				stringBuilder.append("\\" + keyCharacter[i]);
			} else {
				stringBuilder.append(keyCharacter[i]);
			}
			if (i != keyCharacter.length - 1) {
				stringBuilder.append("|");
			}
		}
		stringBuilder.append("/ig, '');");
		replaceObfuscatedCode = stringBuilder.toString();
		
		return replaceObfuscatedCode;
	}