Apparently, they don't need to be particularly close to each other (or open to each other, for that matter). This is what I was able to find about the cute charm glitch.

First, this is how some Pokemon are shiny. You probably already knew some of this.

Very rarely, you might encounter a Pokemon having a different coloration than usual. This is called a shiny Pokemon. The game’s criterion for making a shiny Pokemon depends in part on its PID, but also depends on two other numbers.

One of these numbers is visible in the game. It is called the Trainer ID. This is the number you have when you look at your Trainer card, and is a number between 0 and 65535 (between [0000] and [FFFF] in hexadecimal). The other number is also a number between 0 and 65535 but is unfortunately invisible to you. It is called the Secret ID. Currently, there’s no way you can know your Secret ID without looking at your save file or without using cheat codes.

So how does the game determine that a Pokemon is shiny? Here’s how.

Split the PID in two 16-bit numbers. That is, if the PID was [465DB901], it would split it in two as [465D] and [B901]. We shall call the first 4 hexadecimal digits the HID (high ID) and the last 4 hexadecimal digits the LID (Low ID). Now convert the HID, LID, Trainer ID (which we shall denote by TID for short) and Secret ID (denoted by SID for short) to binary, and compare the first 13 bits of all four, like so:

HID: xxxxxxxxxxxxx|xxx

LID: xxxxxxxxxxxxx|xxx

TID: xxxxxxxxxxxxx|xxx

SID: xxxxxxxxxxxxx|xxx

Here we’re counting the number of 1's in the first bit of the HID, LID, TID and SID. If there are either 1 or 3 ones among those bits, the Pokemon is automatically not shiny. If there aren’t, the game counts the second bits. Again, if there are either 1 or 3 ones among those bits, the Pokemon is automatically not shiny. The game checks the bits of the HID, LID, TID and SID up to their thirteenth one, and all of them would need to have 0, 2 or 4 ones for the Pokemon to be shiny! This is a one in 8192 (2 to the power of 13) chance of happening.

Let’s have an example. Suppose the Trainer ID of the player is 43288, or [A918] in hexadecimal, and the Secret ID is 6075, or [17BB] in hexadecimal. Suppose also that the PID of the Pokemon is [B58F0B2A]. We split the PID in two, the HID [B58F] and the LID [0B2A], and convert the HID, LID, Trainer ID and Secret ID to binary. Thus we would have:

HID: 1011010110001|111

LID: 0000101100101|010

TID: 1010100100011|000

SID: 0001011110111|011

We now count the number of bits in the first bit, second bit, third bit ... up to the thirteenth bit of each of these four 16-bit numbers.

HID: 1011010110001|111

LID: 0000101100101|010

TID: 1010100100011|000

SID: 0001011110111|011

Ones: 2022222420224

Since counting the ones of each bit up to the thirteenth one in turn never yields a number that is not 1 or 3, the Pokemon will be shiny!

source

The cute charm glitch works by setting a wild Pokemon's PID to one of a certain set of PIDs, so PIDs in that set become much more common. As you probably already knew, you want a TID and SID that makes those PIDs shiny, which you can calculate using whatever formula is in the first part of this answer.

source and list of PIDs