golangで使用するアレイの取り扱いについて質問させていただきます。

サンプルコードの後に、詳しい質問をさせていただきます。

package main

import "fmt"

func main() {

    x := []int{1,2,3}
    y := x

    var z []int
    for _, v := range x {
        z = append(z, v)
    }

    x[1] = 4
    fmt.Println(x)
    fmt.Println(y)
    fmt.Println(z)
}

コードの中では、まずxというアレイを作成します。そのアレイを別の方法で2つのアレイ(y, z)にコピーしています。
yはそのままコピーし、zはアレイの各要素をひとつづつコピーして作成します。

その後xの中身だけを変更し、すべてのアレイをPrintしているだけです。

質問ですが、
なぜyアレイも同時に変更されてしまうのでしょうか?
また、yのように作成したアレイもxとはシンクロさせない方法はあるのでしょうか?

ご教授お願いします。