Here's a tree with randomly chosen and sized snowflakes on the edges of nodes. If you can find more snowflake characters, they can be added to the list. Each time you compile the document the pattern will change. I've used LuaTeX to compile, since XeTeX doesn't provide good access to any quickly changing time value to seed the random number generator. PGF uses \time
* \year
as the seed by default and so the image will only change every minute if you compile with XeTeX.
% !TEX TS-program = LuaLaTeX
\documentclass{article}
\usepackage{pdftexcmds} % used to give LuaTeX access to \pdf@elapsedtime
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Linux Biolinum O}
\usepackage{tikz-qtree, tikz-qtree-compat}
\tikzset{every tree node/.style={align=center, anchor=north}}
\newfontfamily\zapf{Zapf Dingbats}
\newcommand*{\flakeA}{\zapf❄}
\newcommand*{\flakeB}{\zapf❅}
\newcommand*{\flakeC}{\zapf❆}
\makeatletter
\pgfmathsetseed{\the\pdf@elapsedtime} % remove this if using XeTeX
\makeatother
\pgfmathdeclarerandomlist{size}{{Large}{huge}{large}{normalsize}}
\pgfmathdeclarerandomlist{flake}{{flakeA}{flakeB}{flakeC}}
\newcommand{\Rnd}{\pgfmathrandomitem{\S}{size}\pgfmathrandomitem{\FF}{flake}}
\newcommand*{\Flake}{\Rnd\csname\S\endcsname\csname\FF\endcsname}
\tikzset{every tree node/.style={align=center, anchor=north}
}
\begin{document}
\begin{tikzpicture}[sibling distance=1cm]
\Tree [.TP \edge node[auto=right]{\Flake};
[.DP\\We ] \edge node[auto=left]{\Flake};
[.T\1 \edge node[auto=right]{\Flake};
[.T ] \edge node[auto=left]{\Flake};
[.VP \edge node[auto=right]{\Flake};
[.V\\wish ] \edge node[auto=left]{\Flake};
[.DP\\you ] \edge node[auto=left]{\Flake};
[.DP \edge node[auto=right]{\Flake};
[.D\\a ] \edge node[auto=left]{\Flake};
[.NP \edge node[auto=right]{\Flake};
[.AP\\Merry ] \edge node[auto=left]{\Flake};
[.NP\\Christmas ]
]
]
]
]
]
\end{tikzpicture}
\end{document}
:)